最近项目组涉及到接口测试,然后自己想着如何输出接口测试的报告,经过自己的了解,发现测试行业中每个公司每个测试人员输出的方式都不一样的。常规的有以下几种
除了上面几种方式以外,还有很多,我个人比较看好的是使用 ant 的方式,因为生成的接口测试报告更加的全面,如下图,具体的学习步骤如下
一、环境的搭建,所使用的工具
1.jdk 的环境的安装与配置,根据自己的电脑系统去下载对应的版本,最好使用 java1.8 的版本
推荐下载的地址:Java Downloads | Oracle
-下载好了,然后默认一直下一步就可以了,这个没有什么技术含量的。安装好了,就配置环境变量。先使用 vim 命令去打开.bash_profile 然后去做如下配置
export JAVA_HOME=/Library/Java/本机安装jdk位置路径
export CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
- 补充 windows 的 环境变量配置的内容,如下图
- 然后按ESC,输入:wq,然后输入命令:source .bash_profile 去激活这个环境变量的文件,这个很好理解,你做了改动,肯定要激活一下,才能够让你配置的环境变量生效
- 然后打开你的电脑终端输入命令:java -version,出现如下信息就代表你已经安装jdk并配置环境变量成功了
2.jmeter的安装,
有同学问,为什么不直接安装jmeter呢?非要先安装 java
因为 jmeter 的运行环境依赖 java 的运行环境,jmeter就是使用java语言进行编写的,这样去想,非常的好理解
- jmeter的下载地址如下
Apache JMeter - Download Apache JMeter
- 根据自己的电脑系统去下载对应的系统版本就可以了,如下图
安装好了,先使用cd命令,cd到你安装的 jmeter 的 bin 目录下,然后输入命令:jmeter 就可以打开了,如下图
当然这里你可以在选项-选择语言-中文,然后系统界面打开就是中文的了
当 jmeter 安装好了后就可以去编写你的接口测试的脚本,这里我提前已经编写好了,如下图
3.当你已经编写好了一个简单的 jmeter 脚本后,然后就可以去安装 ant 工具,这里 ant 工具你可以简单理解成一个编译和打包工具,有了它就可以将普通的文件,以网页的形式展示出来。
ant 的安装也非常的简单,下载地址如下
Apache Ant - Binary Distributions
- 配置 ant 的环境变量和 上面配置 java 的环境变量类似的。先使用 vim 命令打开 .bash_profile
vim .bash_profile
- 然后输入如下配置,同理编辑添加好了 ant 的环境变量后,按ESC,输入:wq 保存并退出,然后输入命令 source .bash_profile 进行激活生效
export ANT_HOME=/Users/chenzilong/Applications/apache-ant-1.10.12
export PATH=$ANT_HOME/bin:$PATH
- 下载和配置环境变量好了,在终端输入命令:ant -version 有如下内容就说名安装配置成功了
到这里你的jmeter、java、ant 以及编写的jmeter脚本好了,现在我们配置输出的邮件的格式以及展示出来的html网页的格式,如下步骤
二、配置输出的邮件格式和 html 网页展示的样式
- 在你的 jmeter 目录下 创建一个文件夹 叫做:TestCase,然后在TestCase目录下分别创建 三个文件夹,具体如下图
- 三个文件夹的作用分别如下
- 对如下三个文件的内容作出更改,这一步很重要
- (重要)将 jmeter 下的 extras 的名字叫 ant-jmeter-1.1.1.jar 的jar包给复制粘贴到 ant 的 lib 目录下,这一步很重要,ant 就是通过这个 jar 包来驱动 jmeter 去执行我们的测试的脚本
- (重要)将jmeter 下的 bin 目录下的 jmeter.properties 使用编辑工具进行编辑,将如下的值进行更改
jmeter.save.saveservice.output_format=csv
改称如下的结果
jmeter.save.saveservice.output_format=xml
-(重要)将jmeter bin 目录下的 jmeter.properties 使用编辑工具进行编辑,将如下的值全部改为true,注意这里一定要全部改为 true
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
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.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
- (重要) 想要成功发送邮件,还需要将 [ activation.jar、commons-lang3-3.8.1.jar、mail.jar ] 这几个 jar 放到你的 ant 下 lib 目录下,这样才可以成功发送邮件,下载的链接:https://pan.baidu.com/s/18BWUMrW7ABfBlvU_b3Mppw 密码是:8jk4
三、编辑你的 build.xml 文件以及输出的模版
- 在你的TestCase文件名目录下新建一个叫做:build.xml 的文件,如下图
- 然后使用编辑工具打开 build.xml 进行编辑输入如下内容,注意,将下面的相关信息全部换成你自己的。这里我都添加了注释,根据注释的地方填写你的信息就可以了,没有注释的地方就不用去更改,之前学习的时候,这里踩了很多坑, 都不知道哪些地方要改,哪些地方不改,这里踩了很多坑。真的,如果大家不确定的,也可以留言这边会给予帮助的
这里以qq邮箱为例
执行接口自动化测试
生成接口自动测试报告
发送自动化测试报告
${message}
- 授权码 ,以qq邮箱为例,先打开网页,进入你的qq邮箱,进入到如下页面
- 进入到设置-账户-往下翻-点击 【生成授权码】选项
- 会有一个安全校验,然后发送短信,获取成功后填入到上面 build.xml 所在位置的 password 也就是你自己的qq邮箱的授权码
- 除此以外,还需要将有一个 stlye 模版下载并放到你 jmeter 下的 extras 目录下,因为你直接去执行的话生成的模版就是这样的,信息不全。不好看,没有响应头哪些,如下图
- 下载的地址:百度网盘 请输入提取码
密码为:ne14
-这个 jmeter.results.shanhe.me.xsl 文件在build.xml 文件内容中的这个位置进行使用,如下图
四、构建代码,输出接口测试的报告
- 先切换到你的 jmeter 下的TestCase目录下,使用你的终端,然后在终端输入如下命令
ant
- 这个时候,如果看到 BUILD SUCCESSFUL 就代表成功了,同时看到 Send email with 1 attachment,就代表成功发送了一封邮件,然后你可以去你邮件进行查看,如下图
- 这个时候,你的老板或者你的 leader 打开文件,一看,有哪些接口,对吧,你现在做的接口测试,请求信息,请求的参数,响应的时间,响应信息,什么东西都可以一目了然,这不比手写的香香了吗,给人妥妥的一种高级感,你做了接口 测试结束后,你的 leader 就回收到一封,里面包含了所有的测试结果,哈哈哈哈哈哈~
- 两个字:真好
今日的分享,到此结束,感谢,fighting!加油,加油,加油