jmeter接⼝⾃动化测试环境部署(ant+jmeter+jenkins+svn+钉钉)jmeter接⼝⾃动化测试环境部署
注意:以下内容适应⽤于公司测试团队⼩,同时技术不⾜以开发或者不愿意投⼊时间精⼒开发接⼝⾃动化测试平台的测试团队。同时本⽂章内容是使⽤docker技术实现搭建,当然如果公司没有使⽤docker技术的也适⽤。将docker镜像看作是⼀台服务器即可。但是docker并不是虚拟机。他只是服务器中的⼀个进程。请读者不要混淆。
⼀、概述
jmeter是做API和性能测试的⼀把利器。也是接⼝⾃动化测试的⼀种⾮常棒的⼀款开源的测试软件。本次接⼝⾃动化的环境搭建主要围绕着jmeter展开。主要⽤到的⼯具/应⽤程序有:jmeter+ant+apache/tomcat+jenkins+DingDing+SVN。搭建⾃动化测试环境的时候注意,⽆论是任何的框架或者说是架构都是围绕着简单、易⽤、功能强⼤三个特点来开展的。所以我们要做的就是尽可能能的减少重复性的操作。让使⽤者能够节省时间的同时尽可能的保证该架构的稳定性。
lucas是谁的儿子
结构图如下:
我好想你 歌词注意:该内容讲解的所有内容均在docker镜像中操作、如果有⾃⼰服务器的同学可以直接使⽤服务器进⾏操作
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker runoob
Remember that you will have to log out and back in for this to take effect!
使⽤docker --version可以查看当前的docker版本
天亮了我还是不是你的女人
3、启动docker
service docker start
2、将jmeter压缩包上传到服务器。
复制jmeter压缩⽂件到运⾏的镜像中
将镜像⽂件中的jmeter压缩包解压到镜像的usr/local⽬录下
新增jmeter“JMTER_HOME”环境变量,并修改完后让配置⽴即⽣效
<?xml version="1.0" encoding="utf-8"?>
<!--Project为整个量的根⽬录;name随便写,可⾃⾏更改;default默认执⾏什么任务,下⾯有个target name = "all";basedir为.代表当前⽬录-->
<project name="jmeter_test" default="all" basedir="/var/www/jmeterCase/case/">
<tstamp>
<!-- 这⾥是加⼊了年⽉⽇时分秒,⽤来加在报告的后缀上-->
<format property="time" pattern="yyyyMMddhhmmss" />
</tstamp>
<!-- 需要改成⾃⼰本地的 Jmeter ⽬录,写到bin⽬录的上⼀步就可以-->
<property name="jmeter.home" value="/home/ubuntu/softWare/qjclouds/apache-jmeter-5.0" />
<!-- jmeter⽣成jtl格式的结果报告的路径-->
<property name="sult.jtl.dir" value="/var/www/jmeterCase/report/jtl" />
<!-- jmeter⽣成html格式的结果报告的路径-->
<property name="sult.html.dir" value="/var/www/html/report" />
<!-- ⽣成的报告的前缀ReportName的value可以⾃定义值,下⾯的jtl和html的名字是⽤变量来的也不需要改 -->
仙凡之旅<property name="ReportName" value="${caseName}" />
<property name="sult.jtlName" value="${sult.jtl.dir}/${ReportName}${time}.jtl" />
<property name="sult.htmlName" value="${sult.html.dir}/${ReportName}${time}.html" />
<!-- 接收测试报告的邮箱,不⽤这个发邮件,可以删除 -->
<property name="mail_to" value="xxxx@xxxxx" />
<!-- 电脑地址,也不⽤,可以删除 -->
周华健的儿子<property name="ComputerName" value="Admin" />
<!-- 对应到上⾯的,default为all,下⾯调⽤了两个:test和report-->
<target name="all">
<antcall target="test" />
<antcall target="report" />
</target>
<!-- 对应到上⾯的target为test -->
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${sult.jtlName}">
<!-- 声明要运⾏的脚本。"*.jmx"指包含此⽬录下的所有jmeter脚本,脚本要执⾏某⼀个就写死哪个 -->
<testplans dir="/var/www/jmeterCase/case" includes="${caseName}.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
音乐翻唱</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<!-- 对应到上⾯的target为report -->
<target name="report">
<tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>
<xslt classpathref="xslt.classpath" force="true" in="${sult.jtlName}" out="${sult.htmlName}"
>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上⾯⽣成报告的时候,不会将相关的图⽚也⼀起拷贝⾄⽬标⽬录,所以,需要⼿动拷贝 -->
<copy todir="${sult.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!-- 发送邮件 -->
</project>
注意:这⾥个modle的脚本⽂件名称⽤${caseName}代替了
(四)DINGDING⽂件
因为整个⾃动化结构都是由钉钉通知的所以⾸先要对钉钉消息进⾏模版化。在新建模版化json⽂件之
前,我们需要先在DingDing上创建⼀个,并在内开启⼀个钉钉机器⼈,新建⼀个json⽂件内容如下:
{
"msgtype": "link",
"link": {
"text": "jmeter编译成功",
"title": "接⼝⾃动化环境通知",
"picUrl": "timgsa.baidu/timg?image&quality=80&size=b9999_10000&sec=1547116083262&di=a123ecc9c1ae1b57809a51e83a81369a&im gtype=0&src=http%3A%2F%2F5b0988e595225.cdn.sohucs%2Fimages%2F20180623%2Fa55f0483026a41bf861e3c82afb7b9b4.jpeg",
"messageUrl": "x/report/${html}"
}
}
注意:这⾥个modle的脚本⽂件名称⽤${caseName}代替了
(五)、⽂件上传
将jmeter脚本名称与ANT编译⽂件名称改为⼀致的⽂件名称例如:l、demo.jmx。改完名称后将jmeter脚本上传到jmeterCase⽂件夹下case⽂件夹。
(六)、服务器⽂件⽬录准备
1、新建⽂件夹bin、DingDing
命令:mkdir ⽬录名称
2、模版⽂件上传
将l、demo.json⽂件上传到bin⽬录
3、检出jmeterCase⽬录
四、sh命令准备
(⼀)、创建新的ANT启动.xml⽂件sh
内容如下:
home=/var/www
cp ${home}/l ${home}/bin/$1.xml
sed -i -e 's/${caseName}/'$1'/g' ${home}/bin/$1.xml
mv ${home}/bin/$1.xml ${home}/jmeterCase/case/$1.xml
svn add ${home}/jmeterCase/case/$1.xml
svn commit  -m 新增$1.xml⽂件 ${home}/jmeterCase/case/$1.xml
(⼆)、发送钉钉消息sh