jmeter教程(十六):命令行执行及结果保存

我们前面所讲的,都是以图形化界面的方式,运行jmeter,这样可以实现自动化的执行一系列的测试用例,那如果我想要让jmeter在某些时机下自动的执行脚本,怎么弄?比如用jinkens自动部署项目,可能就会在down代码后,先用代码扫描工具(如sonarqube)对代码进行静态扫描,没问题就打包(当然也可能扫描和打包在同一步执行),然后部署项目,部署完之后就执行jmeter脚本进行接口自动化测试,当然这里面,某一步不通过,可能还会有发送邮件的操作。这个时候,jmeter脚本就不能放在个人的电脑上运行,要放到服务器上执行,而服务器一般是没有图形化界面的,那就只能用命令行运行脚本了。

用命令行执行jmeter脚本,很简单,这里用前面远程执行一讲的例子来演示

先去掉干扰数据,打开navicat,打开goods表,打开查询,运行命令:TRUNCATE goods,清空表的数据

然后打开控制台,进入jmeter的bin目录

运行命令:jmeter -n -t JDBC.jmx

然后navicat中查看goods表的数据

插入了一条数据,代表脚本执行成功了。

命令说明,如果jmeter的bin目录加入到了环境变量里面,那么在任何目录都可以使用jmeter命令来运行jmeter程序,当然,我现在没有配,所以要先进入到jmeter的bin目录。参数-n代表noGUI运行jmeter,即不使用图形化界面运行,-t代表测试计划(test plan),jmeter的脚本都是以测试计划保存的,后面接脚本名称,可以使用绝对路径,也可以使用相对路径,我这里使用的是相对路径,我的JDBC.jmx就放到jmeter的bin目录下。如果你的脚本不是放在这个目录下,路径就要写别的了。

现在脚本可以用命令行的形式运行了,也确实是插入数据了。我们看结果是用navicat连接数据库查看的,可我们要的是自动化,这样看结果是肯定不行的。那么,就需要脚本执行完后,要把结果保存到一个文件中。要把结果保存到一个文件中,方式有两种,一种是在命令行后面加-l参数,并加上保存结果的文件名

-l,l就是log的意思,脚本执行的结果就会写入result.jtl文件中。现在脚本运行完了,result.jtl也有了,要怎么看这个文件呢,当然,可以使用文件编辑工具(如EditPlus)打开

这里我运行了三次,所以有三行结果,这样看,就很不好看。可以打开jmeter的图形化界面,再读取这个文件

点击 浏览 ,找到结果文件,打开

这样就可以很直观的看了,但是有个问题,点中某一个请求查看,请求和响应数据都为空。其实在用编辑工具打开结果文件查看的时候,就看到结果里根本就没有保存请求和响应数据。这样,就和远程执行一样,要判断请求是否成功,不能通过眼睛来看,需要加断言来判断。远程执行和命令行执行的区别就在于,远程执行,脚本是放在个人电脑上,远程机上是没有脚本的,而命令行执行,要先把脚本放到服务器上,再在服务器上执行命令运行脚本。

这里,通过在测试计划下添加一个监听器,打开结果文件,来查看脚本运行的结果。那如果反过来呢,我在要执行的脚本里添加监听器,并且填上结果文件的路径,这样也是可以保存结果的,且在命令行,不需要再加-l参数了

当在 所有数据写入一个文件 里,填上文件名,那么脚本运行后,结果就会保存到这个文件中。并且保存的内容也更灵活,后面可以勾选只保存错误的请求结果,或者是只保存成功的请求结果。只保存错误的结果,这个在做性能测试的时候,都会勾上这个,这个在后面会讲。后面还有一个按钮 configure,在这里面,可以定义保存结果里,要保存哪些内容。

可以看到响应数据、请求数据没有勾上,这就是我们前面看结果,请求数据和响应数据都没有的原因。而且后面的括号也说明,只有保存的结果文件为xml格式,勾选这两个才有效,如果要把结果保存为xml格式的话,那么就必须勾上第一项:Save As XML,这样,保存的结果就是xml格式了。现在,我们把这三项都勾上,再点下面的Done,然后保存的结果文件,后缀改为xml

然后,保存脚本,再次用命令行执行:

然后,bin目录下就多了一个result.xml文件,在图形化界面,新建一个脚本,添加一个监听器——察看结果树,然后打开result.xml

这个时候,就看到有响应数据了

欢迎加入测试群:91425817,一起讨论测试的那此事。

发布了47 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/kingzhsh/article/details/87901422
今日推荐