jmeter接口自动化测试环境部署(ant+jmeter+jenkins+svn+钉钉)

您所在的位置:网站首页 jmeter部署 jmeter接口自动化测试环境部署(ant+jmeter+jenkins+svn+钉钉)

jmeter接口自动化测试环境部署(ant+jmeter+jenkins+svn+钉钉)

2023-10-09 10:53| 来源: 网络整理| 查看: 265

jmeter接口自动化测试环境部署

注意:以下内容适应用于公司测试团队小,同时技术不足以开发或者不愿意投入时间精力开发接口自动化测试平台的测试团队。同时本文章内容是使用docker技术实现搭建,当然如果公司没有使用docker技术的也适用。将docker镜像看作是一台服务器即可。但是docker并不是虚拟机。他只是服务器中的一个进程。请读者不要混淆。

另外需要该文章pdf版本的读者可在百度网盘下载 链接:https://pan.baidu.com/s/1N7lkkh29YZgPB4RJF8Ywvg 密码:rked

一、概述          jmeter是做API和性能测试的一把利器。也是接口自动化测试的一种非常棒的一款开源的测试软件。本次接口自动化的环境搭建主要围绕着jmeter展开。主要用到的工具/应用程序有:jmeter+ant+apache/tomcat+jenkins+DingDing+SVN。搭建自动化测试环境的时候注意,无论是任何的框架或者说是架构都是围绕着简单、易用、功能强大三个特点来开展的。所以我们要做的就是尽可能能的减少重复性的操作。让使用者能够节省时间的同时尽可能的保证该架构的稳定性。 结构图如下: 在这里插入图片描述 注意:该内容讲解的所有内容均在docker镜像中操作、如果有自己服务器的同学可以直接使用服务器进行操作

二、环境准备环境搭建 (一)Linux docker环境搭建 1、centos安装docker          如果linux环境中安装了yum工具包那么直接使用yum install docker便可以直接安装了,在安装过程中如果询问直接‘y’就好 在这里插入图片描述 使用docker --version可以查看当前的docker版本 在这里插入图片描述 2、ubuntu安装docker          前提条件:Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。 通过 uname -r 命令查看你当前的内核版本 在这里插入图片描述 检查完版本后在命令行中输入wget -qO- https://get.docker.com/ | sh 在这里插入图片描述 输入当前用户的密码后,就会下载脚本并且安装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

4、下载linux镜像文件 5、搜索镜像          搜索ssh镜像文件docker search ssh 在这里插入图片描述 6、下载镜像          下载镜像文件到本地 docker pull jdeathe/centos-ssh ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190730113231759.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAxOTQwNg==,size_16,color_FFFFFF,t_70 7、检查与查看          查看镜像文件是否下载成功 docker images 在这里插入图片描述 8、运行docker镜像并开启所需端口          1)运行镜像 “docker run -it --name jmeterTest -d -p 7890:8080 -p 7891:22 -p 7892:80 jdeathe/centos-ssh”此命令会运行docker仓库中的jdeathe/centos-ssh镜像并重新命名为jmeterTest 并且会将镜像中的8080、22、80端口映射到docker宿主机的7890、7891、7892上。 在这里插入图片描述          2)查看正在运行的docker镜像 “docker ps” 在这里插入图片描述

         3)进入docker镜像内执行sh命令 “docker exec -it jmeterTest bash”,如果此时发现主机名称变成了12位的字符便成功了,不过你会发现字符是你启动docker镜像的时候返回给你的前12位字符 在这里插入图片描述 (二)、安装JDK 1、下载          下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, 在这里插入图片描述 2、上传          将jmeter压缩包上传到服务器,由于docker下载的镜像是比较干净的镜像所以有很多我们常见的命令不能执行,需要我们手动的去下载。所以先使用rz或者scp命令将压缩包上传到宿主机,退到宿主机只要执行exit命令就可以了 在这里插入图片描述          复制jmeter压缩文件到运行的镜像中 在这里插入图片描述          将镜像文件中的jmeter压缩包解压到镜像的usr/local目录下 在这里插入图片描述          新增jmeter“JAVA_HOME”环境变量,并修改完后让配置立即生效 在这里插入图片描述 在这里插入图片描述          查看java版本 java -version 在这里插入图片描述 (三)、安装jmeter 1、下载jmeter          地址:http://jmeter.apache.org/download_jmeter.cgi。在jmeter官网中有两处下载:Binaries为jmeter应用程序下载。Source为源码下载。下载的时候可以在Binaries处自己选择想要下载的格式,.tgz和.zip。这里我选择第一个.tgz。(两个是一样的,下载后只是解压格式不一样) 在这里插入图片描述

2、将jmeter压缩包上传到服务器。 在这里插入图片描述          复制jmeter压缩文件到运行的镜像中 在这里插入图片描述          将镜像文件中的jmeter压缩包解压到镜像的usr/local目录下 在这里插入图片描述          新增jmeter“JMTER_HOME”环境变量,并修改完后让配置立即生效 在这里插入图片描述 在这里插入图片描述

(四)、安装ANT 1、下载ANT          地址:https://ant.apache.org/bindownload.cgi 在这里插入图片描述 2、将jmeter压缩包上传到服务器。 在这里插入图片描述          复制jmeter压缩文件到运行的镜像中 在这里插入图片描述          将镜像文件中的jmeter压缩包解压到镜像的usr/local目录下 在这里插入图片描述          新增jmeter“ANT_HOME”环境变量,并修改完后让配置立即生效 在这里插入图片描述 3、配置ANT          将jmeter目录下的ant-jmeter-1.1.1.jar文件复制到ANT文件夹的lib目录下 在这里插入图片描述

(五)、安装svn          执行命令:yum install subversion安装完成后svn --version查看当前svn版本 在这里插入图片描述 (六)、安装apache 1、安装          执行命令:yum install -y httpd 暗转完成后输入httpd -v查看当前版本 在这里插入图片描述          查看完当前版本后访问该镜像,【http://ip地址:端口】 在这里插入图片描述 (七)、安装jenkins 1、下载          下载地址 :https://jenkins.io/download/ 选择一个与自己docker镜像相匹配的jenkins包,或者下载java的版本。这里为了教学方便所以选择下载java版本 在这里插入图片描述 2、将jenkins包上传到服务器。 在这里插入图片描述          复制jenkins包文件到运行的镜像中 在这里插入图片描述          运行jenkins 在这里插入图片描述 3、jenkins基础配置          启动后访问地址:http://ip地址:7890/ 在这里插入图片描述          根据jenkins提示在docker镜像中找到对应路径文件,并打开复制内容,黏贴。黏贴后安装推介的插件 在这里插入图片描述 在这里插入图片描述          创建初始化帐号(最高权限)

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190730113700501.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAxOTQwNg==,size_16,color_FFFFFF,t_70 三、文件环境准备 (一)、文件目录准备 1、svn新建jmeterCase          新建jmeterCase文件夹用于存放jmeter自动化测试脚本 在这里插入图片描述 (二)、jmeter脚本数据准备 在这里插入图片描述 (三)、ANT数据文件准备          新建一个.xml的ANT编译文件内容格式如下

注意:这里个modle的脚本文件名称用${caseName}代替了 (四)DINGDING文件          因为整个自动化结构都是由钉钉通知的所以首先要对钉钉消息进行模版化。在新建模版化json文件之前,我们需要先在DingDing上创建一个群,并在群内开启一个钉钉机器人,新建一个json文件内容如下: 在这里插入图片描述

{ "msgtype": "link", "link": { "text": "jmeter编译成功", "title": "接口自动化环境通知!!!", "picUrl": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1547116083262&di=a123ecc9c1ae1b57809a51e83a81369a&imgtype=0&src=http%3A%2F%2F5b0988e595225.cdn.sohucs.com%2Fimages%2F20180623%2Fa55f0483026a41bf861e3c82afb7b9b4.jpeg", "messageUrl": "http://xxx.xxx.xxx.xxx/report/${html}" } }

注意:这里个modle的脚本文件名称用${caseName}代替了

(五)、文件上传          将jmeter脚本名称与ANT编译文件名称改为一致的文件名称例如:demo.xml、demo.jmx。改完名称后将jmeter脚本上传到jmeterCase文件夹下case文件夹。 在这里插入图片描述 (六)、服务器文件目录准备 1、新建文件夹bin、DingDing          命令:mkdir 目录名称 在这里插入图片描述 2、模版文件上传          将demo.xml、demo.json文件上传到bin目录 在这里插入图片描述

3、检出jmeterCase目录

在这里插入图片描述 在这里插入图片描述四、sh命令准备 (一)、创建新的ANT启动.xml文件sh 内容如下:

home=/var/www cp ${home}/bin/demo.xml ${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

内容如下: #定义jmeter自动化home文件夹

home=/var/www if [ ! -f ${home}/jmeterCase/case/"$1".xml ]; then sh -x ${home}/bin/createAntXML.sh $1 fi #更新html报告文件夹 svn up ${home}/html/ #更新用例文件夹 svn up ${home}/jmeterCase/ #调用ant执行jmeter脚本并生成报告 ant -f ${home}/jmeterCase/case/$1.xml #创建随机变量文件名 random=${RANDOM} #遍历report目录下以参数$1开头的文件并排序,将内容吧写入到随机文件 ls -t ${home}/html/report | grep $1 >>${home}/html/report/${random}.txt #读取随机文件的第一行文本 file=$(head -1 $home/html/report/${random}.txt) #删除随机文件 rm -rf ${home}/html/report/${random}.txt #删除钉钉消息文件 rm -rf ${home}/DingDing/$1.json #复制消息文件 cp ${home}/DingDing/msg.json ${home}/DingDing/$1.json #替换url sed -i -e 's/${html}/'${file}'/g' ${home}/DingDing/$1.json #替换消息标题 sed -i -e 's/jmeter编译成功/【'$1'】jmeter脚本编译成功,点击查阅:http:\/\/111.230.223.145\/report\/'$file'/g' ${home}/DingDing/$1.json #读取json文件 json=$(head -n 100 ${home}/DingDing/$1.json) #发送钉钉消息 if [ $(grep -c "class=\"failure\"" ${home}/html/report/${file}) -eq 1 ]; then curl https://oapi.dingtalk.com/robot/send?access_token=992debb70f5fe66037383d5e7635e99cdc1608957affc6c4256127b500526c5a -H 'Content-Type: application/json' -H "Data_Type:msg" -X POST -d "${json}" fi

注意:最后发送钉钉消息时将之前创建的DingDing机器人的token换成自己的“access_token”

五、jenkins配置

         新建一个job 在这里插入图片描述          配置参数化构建 在这里插入图片描述          添加需要执行的命令 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3