性能测试进阶(三)——使用jmeter+ant进行接口集成性能自动化测试

此前的性能测试进阶文章中内容提到,近期我已经成功完成分布式的性能测试、单机输出报告等操作。与此同时,最近利用JMeter写脚本来进行Web的性能测试,最终写了很多份脚本。可是这么多脚本,我不可能一个个的手动去点啊,有没有什么办法来批量运行JMeter脚本呢?

这个时候想起了一个在阿里游戏工作的测开大神提到过,可以借助Ant。接下来我就借助jmeter+ant进行接口集成性能自动化测试


前期准备:安装与配置Jmeter和Ant

Jmeter的安装和配置在这就不多说了,和之前是一样的。那么在这里重点说说Ant的安装与配置。

首先到官网去下载Ant,网址链接:下载Ant,并且解压放到D盘。

Ant下载页面


接下来配置环境变量

1. ANT_HOME: 安装路径;

2. path: %ANT_HOME%\bin

ANT_HOME


path


cmd 命令行执行 ant -version 验证ant的安装情况。

验证版本


接下来, 找到JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar这个文件。


将其复制到Ant所在目录lib子目录之下,复制完如下。


这样Ant运行时才能找到”org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类,从而成功触发JMeter脚本。


核心过程:编写配置文件

环境准备好之后,剩下的就是编写配置文件了,让Ant找到所有的JMeter文件。默认的配置文件,命名为build.xml,下面就介绍一下,如何编写这个xml文件。

配置build.xml文件如下:

build.xml文件


配置工作完成之后,就可以正式进入压测环节了。


重中之重:压测填坑之路

首先打开cmd命令行,cd到build.xml目录,运行ant命令,就会启动JMeter进行压测。JMeter运行完毕后,会自动执行将生成的jtl文件分析为csv文件的工作。

然而,填坑之路就此开启

ant执行后,发现报错了,提示“build failed, UTF-8序列字节无效”


这个是因为build.xml文件中存在编码不同的字符,接着我就把build.xml文件中'UTF-8'的编码方式改成'GB2312',成功消除此报错。


再次执行ant,又报错了,这次提示:jtl文件不存在


这个场景似曾相识,在单机性能测试输出报告有类似情况,有可能是目标jtl文件和report文件和测试脚本放在一起的原因。然后我新建一个文件夹专门存放report和jtl,此时报错成功解决。


再次执行ant,发现出现test的标志了,仿佛成功的曙光就在眼前。


过程中看着都很顺利,结果到了最后一个节点还是报错:build failed, GG(卒)。


这又是哪门子问题呢?认真看一下报错信息:jmeter-results-detail-report_21.xsl这个文件不存在

在网上查了一下,Jmeter3.X是需要将Jmeter2.X的\extras\jmeter-results-detail-report_21.xsl文件,复制到F:\apache-jmeter-3.0\extras文件夹中的,否则的话report的样式就生成不了。

可是我没有Jmeter2.X的版本啊,这怎么办?

我用全盘搜索我的PC看看有没有类似东西,还好在我的Jmeter4.X的版本找到了,立马复制过来用一用。


拷贝完成后,继续执行ant,又报错了(还有完没完?),这次提示“前言中不允许有内容”


这又是什么鬼东西呢?百度了一下,常见错误:前言中不允许有内容,解决办法如下:

1.在JMeter的bin目录中找到jmeter.properties;

2.将文件中#jmeter.save.saveservice.output_format=csv改为jmeter.save.saveservice.output_format=xml

(注意:去掉前面的#号,后面的xml要小写。)

这个是用于修改Jmeter默认保存文件的格式。



修改完成之后,重新执行ant,提示'build successful',总算是成功了!



构建ant完成后,我迫不及待就打开report文件夹查看一下报告,结果发现这份报告有bug:date report 显示date not defined,min time 和 max time 处都是NaN。


接下来就需要优化一下这份报告了。将配置文件build.xml优化代码如下,即可解决上述问题。


优化完成后,这次我们不采用cmd命令行的方式,采用另外一种方式执行:

在build.xml配置文件的文件夹新建一个build.bat批处理文件,此文件只需写入"ant"保存,然后双击build.bat就会自动批量执行自动化的脚本。


执行完成打开报告可以看到,report的时间有了,min time 和 max time 也有数值了。至此,使用jmeter+ant进行接口集成性能自动化测试的任务顺利完成了!



读更多的好书,拍更美的照片,写更酷的代码,遇见更有趣的人,愿望是实现从IT菜鸟到全栈工程师的蜕变。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容