前言:接口自动化实现方式很多,例如:postman,python+request,java+TestNG,公司自己自研的平台,等等。我介绍的是 使用jmeter工具做接口自动化。
优点:上手简单;jmeter有丰富的插件,直接下载使用;编写接口用例方便,好维护,执行等也方便快捷。
缺点:半自动化,因为利用工具和插件,太框架化不灵活,可制定性不高。例如:接口测试报告内容个性化,自己想要某些数据展示基本难以实现(会代码的大神另算)。
个人主观:非常适合只做接口自动化,且项目不庞大(模块不繁杂,第三方对接不多),重要是用例case方便编写,方便维护。我个人是比较喜欢这个方案。
本文重点介绍实现的方式,需要提前具备jmeter接口自动化的基本使用技能,本文不多赘述。
..................................................................................................................................................
一、相关工具安装
1.jmeter安装
第一步:首先从jmeter的官网下载jmeter。
下载地址:
jmeter: http://jmeter.apache.org/download_jmeter.cgi
JDK: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,
百度网盘:
jdk链接:https://pan.baidu.com/s/1BUB_WmNCchMjrTBRcWGVgw 提取码:a7c0
jmeter: 链接:https://pan.baidu.com/s/17GxsQeVxMFmG0JRTBCl3Eg 提取码:axyj
第二步:安装JDK(这个是必须得先装)
将下载好的JDK解压缩进行安装,若无安装目录要求,可全默认设置。无需做任何修改,均直接点下一步即可。
第三步:安装完成后配置JDK的环境变量
位置:计算机→属性→高级系统设置→高级→环境变量
1、系统变量→新建JAVA_HOME变量,变量值填写jdk的安装目录(本人是 C:\Program Files\Java\jdk1.8.0_92),如下图
2、系统变量→寻找 Path 变量→编辑,在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; ,如果原来Path的变量值末尾有没有;号,先输入;号再输入上面的代码,如下图
3、系统变量→新建 CLASSPATH 变量;变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点),如下图
4、检验是否配置成功 运行cmd 输入 java -version ,如果出现如下结果,则说明JDk环境变量配置成功
第四步:安装jmeter
1、将下载好的jmeter进行解压缩
2、解压缩完成后进入JMETER目录,点击下面的批处理文件(设置里打开扩展名就能看见了),就可以了。
之后就会打开jmeter,如下图:
JMeter运行方式:
进入bin目录运行jmeter.bat启动jmeter(方式1)
双击jar包运行(方式2)
注意:如果启动不了看下面(一般是能启动的)
网上查询的时候说在安装jmeter后需要设置环境变量,其实这里不用设置也是可以的,但是在这里也进行一下环境变量配置的说明;
1、加入系统变量JMETER_HOME,如下图:
2、系统变量CLASSPATH中加入下边的内容:%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar
3、确定完成。
2.ant安装:
1、解压apache-ant-1.9.9-bin.zip到E:\Program Files\apachejmeter31目录下;
2、配置Ant环境变量
■ 1)系统变量→新建【ANT_HOME】变量
变量值中输入:【E:\Program Files\apachejmeter31\apache-ant-1.9.9】,点击确定即可。
■ 2)系统变量→寻找Path变量→编辑
在变量值最后输入【%ANT_HOME%\bin】
■ 3)检查是否配置成功,运行cmd输入 【ant -version】,如果成功,显示版本号
二、使用ant生成测试报告
本地调试使用Ant构建运行Jmeter,并且生成【jtl】、【Html】报告
也可以自己创建文件夹如图:
1、首先我们默认Jmeter脚本已经录制,或者编写好了,并测试通过,存在(登录.jmx)脚本
2、将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本
3、jmeter默认保存的是.csv格式的文件,所以我们先要设置一下jmeter安装目录下 .../bin/jmeter.properties文件内容,去掉注释#,并修改csv为xml,保存jmeter.save.saveservice.output_format=xml
4、想要在测试报告结果能展示更多的结果,修改jmeter安装目录下 .../bin/jmeter.properties文件内容,【标红的内容】去掉注释#,并修改为true,保存(如果是百度网盘下载的是改好的)
jmeter.save.saveservice.assertion_results_failure_message=true
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
5、主要逻辑思路:运行E:\tmp\ResultReport\jmx下面的.jmx脚本,生成.jtl文件放入E:\tmp\ResultReport\jtl文件中,ant在将相应的文件转换为对应的html文件放入E:\tmp\ResultReport\html中 (build.xml文件放在E:\tmp目录下,方便查找和定位)
6. build.xml文件修改
ant是一个项目管理工具类似maven,执行通过build.xml文件的内容参数执行
所以要设置这几项(可以在上网详细学习):可以用notepade++编辑。
PS:win+R打开cmd,切换到E:\tmp目录下,输入 ant 查看运行结果(进入和同build.xml文件夹同级),若构建失败,请分析cmd打印的日志消息,定位问题;
或进入到E:\tmp目录下,按住键盘Shift键,鼠标右击选择“在此处打开命令窗口”,输入 ant 命令
最终结果生成,打开html文件(默认样式表):
(这个模板不漂亮,可以重新选择模板。)
做到这一步基本上成功了。本地可以写,并且可以调试执行。
三、定时执行并发送邮件
因为写完的接口自动化不可能每次自己手动执行,所以需要工具定时触发去执行。
使用最常用的工具Jenkins。
1.安装:
百度网盘:链接:https://pan.baidu.com/s/1p8MS_Ep5s15OqAX2fr2WIg 提取码:ig3x
下载下来,一直下一步:
2、根据页面路径输入密码
3、显示实例离线,修改文件(如果不安装插件,这一步可以忽略)
D:/jendins/hudson,model.UpdateCenter.xml 将https修改为http
将https改为http
4、重新访问jenkins
5、输入密码,点击继续
6、选择“安装推荐的插件”
推荐安装支持svn和git
7、插件结束后,要求创建管理员用户
8、实例配置,默认
9、安装结束
10、安装完毕
安装完毕之后,安装常用的插件,网上可以搜搜。
11.创建一个任务(可以先网上搜索
学习Jenkins使用教程)
如果没有 Invoke Ant 就是没有插件,网上搜下下载安装。
12.执行
13.设置定时任务
然后在设置定时任务,比较简单,网上搜索下设置应用就可以,完成!
四、总结
接口自动化在回归测试里面必不可少。
jmeter+ant+jenkins 本人认为是一个效率最高的实现方案,比起其他用语言写的接口自动化在编写,执行实现,维护,效率很高。
本文写的非常简单,目的是展示一种接口自动化的实现方案。
如果想去做,多多网上查,重点学习下怎么在jmeter里写接口自动化的脚本(http请求,正则提取,断言,等等)。