本篇博客

1 jmeter特点
2 jmeter安装启动
3 jmeter中的元件
4 jmeter实战
5 使用jmeter实现自动化接口测试

补充:jmeter具体实战操作:

https://www.cnblogs.com/zhangyangcheng/p/12630613.html

 

1 jmeter特点

jmeter有一下特点:

  • 免费、开源的
  • 纯java语言开发
  • 需要安装jdk:java development kit

2 jmeter安装启动

jmeter安装启动步骤:
解压即可:apache-jmeter-2.13.tgz
目录

  1. bin:存放的是启动文件
  2. extras:里面存放的是实现接口自动化时的ant包

启动:在bin目录下双击jmeter.bat文件即可

保存:一定要选择最上面的测试计划进行保存。

 

一般jmeter3.0的对应jdk1.7jmeter4.0对应jdk1.8以上,否者启用jmeter也会报错

 

我的jmeter版本:apache-jmeter-2.13          jdk1.7 版本

 jmeter长这样子。

3 jmeter中的元件

jmeter基本元件介绍:

1. 测试计划,是使用jmeter测试的开始,是其他元件的容器;通常根据项目来为测试计划重命名

2. 用户定义的变量, 可以赋予动态获取值,使用${变量名} 引用

3. 线程组,线程数用来设置发送请求的用户数,即并发数,还有线程的时间间隔、循环次数

4. 取样器(HTTP请求),填写HTTP请求的协议,方法以及参数

5. 监听器,负责收集测试结果,并给出结果显示方式,常用察看结果树聚合报告断言结果

6. 断言,用来判断响应结果是否如用户所预期的,常用的有响应断言(自动化测试接口,基本上都要加断言来判断响应结果)

7. 配置元件,主要是参数化中用到CSV Data Set ConfigHTTP Cookie 管理器

小小介绍下:

1   Cookie 管理器就像一个 web 浏览器那样存储并发送 cookie。

说明:如果你有一个 HTTP 请求,其返回结果里包含一个 cookie,那么 Cookie 管理器会自动将该 cookie 保存起来,而且以后所有的对该网站的请求都使用同一个 cookie。

2    响应断言和断言结果是配套使用。(响应断言:10002     断言结果:只显示HTTP请求,就说明响应断言是对的。)

3    线程组的介绍(线程数,线程的时间间隔,循环次数)

设置线程组:

1)线程数也就是并发数(并发测试中,并发数相当于用户数)

2)设置ramp-up period:

ramp-up period用于设置启动所有线程所需要的时间。如果选择了5个线程,并且ramp-up period是10秒,那么JMeter将使用10秒使5个线程启动并运行。每个线程将在前一个线程启动后10(10/5)秒后启动。

3)设置循环次数:

该项设置线程组在结束前每个线程循环的次数,如果次数设置为1,那么JMeter在停止前只执行测试计划一次。

jmeter复杂点元件介绍:

8. 参数化设置, 三种类型:一种是利用函数助手中的_CsvRead 函数进行参数化设置; 另一种利用配置元件中的CSV Data Set Config 进行参数化设置;还有一种就是用户参数设置数据(添加用户和变量)。

9. 动态数据关联,在HTTP 请求的参数中会遇到一些参数的值是从服务器响应返回的动态数据,这些数据需要进行关联才能使得下一次请求能成功地被服务器接受。在jmeter中,采用正则表达式提取器来获取这些动态数据。

jmeter我没怎么用到的元件介绍:

10. 控制器,结合sampler(取样器) 使用,可以模拟复杂的请求序列;常见的分逻辑控制器,循环控制器以及事务控制器

11. 前置处理器,负责在生成请求之前完成工作,常用来修改请求设置

12. 后置处理器,负责在生成请求之后完成工作,常用来处理响应数据,主要是在动态关联中用到后置处理器的正则表达式(这个用到过

13. 定时器,负责定义请求之间的延迟间隔

 

附加小知识:

请求结构 

看到这里我们大致就明白了接口测试是怎么一回事了。接下来需要理解一下HTTP的URL是怎么组成为一个接口的。如图:

 

一个URL就是一个接口:接口大致会分为一下几个部分:

1.请求协议:

  • http — 普通的http请求
  • https — 加密的http请求,传输数据更加安全
  • ftp — 文件传输协议,主要用来传输文件

2.请求IP:就是指提供接口的系统所部署的服务器地址

3.请求端口:如果不填端口,默认80,否则需要填写端口号

4.接口地址:又称接口路径。指系统提供的接口在什么位置

5.接口参数:参数在接口路径后,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数,

 

格式(重点)

http://host[:port][abs_path]

  • http表示要通过HTTP协议来定位网络资源;
  • host表示合法的Internet主机域名或者IP地址;
  • port指定一个端口号,为空则使用缺省端口80;
  • abs_path指定请求资源的URI(Uniform Resource Identifier,统一资源定位符);

如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。

 

例子:

1、输入:www.guet.edu.cn

浏览器自动转换成:http://www.guet.edu.cn/

2、https://www.baidu.com/

域名和ip地址之间是通过DNS域名解析系统解析的。

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。

http请求方式

(所有方法全为大写)有多种,主要是GET和POST。

1.  GET(SELECT):从服务器取出资源(一项或多项)。在做数据查询时,建议用GET方式,如:商品信息接口、搜索接口、博客访客接口…

2.  POST(CREATE):在服务器新建一个资源。在做数据添加、修改时,建议用POST方式。如:上传图片接口、登录注册接口…

3.  PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据)。

4.  DELETE(DELETE):从服务器删除资源。

误区:GET是从服务器上获取数据,POST是向服务器传送数据(该说法有误)

解析:GET/POST都可以提交数据,GET请求也可以向服务器传递数据,POST请求也需要服务器返回数据

(只需要修改接口的参数,就可以像功能测试一样测了。可以用功能测试设计用例的方法来设计接口测试的用例。可以使用各种测试用具辅助测试,下图为“postman”测试工具。)

Postman工具进行接口测试

访问天天首页

get传参

1:GET方式     2:参数在?后面,用&连接。   3:点击send     4:结果

注意:如果有参数,可以直接放在2 (?后面,&连接)里面

 

 

访问登陆页面    用户名:zyc   密码:123456

post传参:

1. 选择POST传参

2. url      http://192.168.44.133:8000/users/login

3. Header中要填写 Content-Type:application/javascript  

4:Body中选form-date :填写参数。   

5:点击send。(下面的Body是发送后的结果。)

可以看到右边status状态:200   接口成功

6.保存

点击save把这条求情保存一下方便下次调试快速输入调用

我们做接口测试,需要开发提供接口文档。最重要的有一下几点:

1.被测接口的地址

2.接口参数,以及各个参数的说明

3.必要的http头与http体 ( http头是可以自定义的,可以用来校验是否是自己人访问 )

4.接口返回什么值,以及各个返回值的说明

5.接口是干什么的

 

前面的搞清楚了,接口测试就简单了,其实就是几个步骤。

1.拿到接口的url地址

2.查看接口是用什么方式发送

3.添加请求头,请求体

4.发送查看返回结果,校验返回结果是否正确

这个是正常的一套流程,异常的情况,就不用我多说来吧。比如参数不传值呀,传的值不正确呀,明明要求用”GET”请求发送,偏要用”POST”请求发送呀。等等有很多异常情况,一般懂功能测试都能想到很多的异常

情况,这里不再举例来。

接口测试用例

接口测试用例的设计就没什么好讲的了,与功能测试一样设计就好了。我是用Excel来编写的,主要是为了方便管理,只要写的干净,让人看的很舒服就好了。我自己设计的用例是这样的:

  1. 一个模块对应一个Excel表
  2. 一条接口对应一张sheet表
  3. 表中一行对应一条测试用例
  4. 在开始要注明测试时需要的sql,如下图开始我会创建用户,用完了我会删除

这样的用例比较好管理,如图:

 

4 jmeter实战

jmeter(GET,POST,三种参数化):

https://www.cnblogs.com/zhangyangcheng/p/12630613.html

4.1 get请求模拟

4.2 post请求模拟

4.3 接口间参数传递

场景:访问两个url。访问第一个url,返回usersession。访问第二个url,带着usersession参数访问。

两个HTTP请求平级,第一个为打开HTTP,第二个为登陆HTTP。在第一个HTTP下面一级增加正则表达式提取器。

正则表达式提取器:添加—-后置处理器—正则表达式提取器

1)引用名称:变量名

2)正则表达式内容:通过左右边界的内容提取

3)模板:如果提取的参数有多个那么写相应的模板,样式为:$n$

模板为$0$,则为整个表达式匹配到的内容;

模板为:$1$,则对应正则表达式中的第一个小括号内()匹配的内容;

模板为$2$,则对应正则表达式中的第二个小括号()匹配的内容;

模板为$1$$2$,则把2个()所匹配的内容拼接起来,$1$aa$2$拼接两个变量的内容,并在中间加上aa

4)匹配数字
      0代表随机取,1取第一个,2取第二个…, -1取全部
5)缺省值
      如果取出数据为空,则给默认值

使用变量:${变量名}

 

接口间参数例子:webtours登陆时,第一步实现登录请求,然后将请求返回的userSession提取出来保存到一个变量中,后续请求作为入参使用

1. 准备工作:开启webtours。可以参考上一篇博客(接口测试01)。

浏览器访问:http://192.168.197.1:1080/WebTours/

用户名:jojo,密码:bean

2. 使用fiddler抓包获取userSession。也是上一篇博客。

3. 使用jmeter做接口测试。

这个结构是这样的

webtours是线程组,open和login是平级的HTTP请求,察看结果树和HTTP请求也是同级。正则表达式提取器是open下面的一级。

1)添加webtours—-测试计划(右键,添加)—-Threads Users—–线程组

2)添加open—–webtours(右键,添加)——-取样器—–HTTP请求(改名:open)

这里先通过fiddler抓取打开页面的url

url直接复制2url里面的url。这是打开webtours页面的url

url:     http://192.168.197.1:1080/WebTours/nav.pl?in=home

HTTP请求:open 

服务器名称或IP:    192.168.197.1

端口:1080

协议:http

方法:GET

路径:/WebTours/nav.pl?in=home  (注意:get是可以把参数放在路径里的)

 3)添加正则表达式提取器——open(右键,添加)——后置处理器—–正则表达式提取器

先在fiddler里找到要正则匹配的userSession:在2url里—Raw—-userSession(输入框搜索)—-找到userSession值。

正则表达式提取器

引用名称:usersession

正则表达式:name=userSession value=(.+?)>

模板:$1$

匹配数字:1

4)添加login—-webtours(右键,添加)—–取样器—–HTTP请求

HTTP请求:login

服务器名称或IP:    192.168.197.1

端口:1080

协议:http

方法:POST

路径:/WebTours/login.pl  

这里一定要注意一点:其他参数和值直接复制就好。userSession的值是变动的。要用匹配到正则的定义变量${usersession}  来代替抓到的值。

参数:

userSession=${usersession}    

username=jojo

password=bean

JSFormSubmit=off

login.x=54

login.y=13

上面填写的内容,都是fiddler抓取来的。

5)添加察看结果树—–webtours(右键,添加)——监听器—-察看结果树

点击三角型运行

点击open—响应数据   title和userSession(参考fiddler的响应数据,这两个点一样就说明是是对的),不用看后面的value值。

依据在这: 这里是fiddler,打开页面的响应数据。2url—-Raw——title和userSession

判断登陆页面是否正确,这里是对的,也是参考fiddler登陆页面的响应数据。

<title>Web Tours</title>

说明接口间参数正确实现了 

4.4 参数化

方式一、通过读取csv、txt文件获取数据
选中线程组—>配置元件—>CSV Data set config
1)填写内容
Filename:包括路径
变量名variable names
变量名之间用英文逗号隔开

2)然后使用${变量名}来读取文件每一列内容

注意:通过文件的行数来决定读取内容

方式二、通过函数助手读取csv、txt文件(顺序会乱)
选项菜单–>函数助手对话框—>__CSVRead函数

填写文件路径和列号(列号从0开始)

点击生成变量即可

注意:函数助手是按照不同用户读取文件内容

方式三、通过用户参数设置数据(顺序会乱)
选中线程组—>添加前置处理器中的用户参数选项

通过添加变量和用户来构造多条数据

注意:是由不同的用户决定读取的内容

 

5 使用jmeter实现自动化接口测试

下面会讲到:jmeter+ant+jenkins接口自动化测试框架

大致思路:

Jmeter可以做接口测试,也能做压力测试,而且是开源软件;

Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,

Jenkins是持续集成工具。

将这三者结合起来可以搭建一套Web  HTTP接口测试的持续构建环境,实现接口自动化测试,pc系统是Windows。

5.1 配置Jmeter环境变量

JMETER_HOME:D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13

Path:%JMETER_HOME%\bin

CLASSPATH:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

验证是否配置成功:在dos窗口输入jmeter

注意:(JMETER_HOME这个是新建的,其余两个是编辑的。前面要加英文分号,如果有,就不加了)

 

环境变量相关配置

1.电脑桌面—-》“计算机”图标—-》鼠标右键选择“属性”—-》点击高级系统设置—-》高级—》环境变量页面

2.开始配置环境变量了。在系统变量框,点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。我的安装路径:D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13 。然后点击3次确定进行保存即可。注意:一定要选择系统变量进行修改。

3.在系统变量中找到Path,ClassPath变量,因为有其他值,在其后面进行添加下面的值即可。注意:要在前面分号

Path:%JMETER_HOME%\bin

CLASSPATH:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

 

4.验证环境变量配置的是否正确

第一种启动jmeter方式:cmd   jmeter

会出现jmeter界面,说明就配置成功。因为都把jmeter启动起来了。

还第二种启动jmeter方式:首先进到你的jmeter安装路径,找到bin文件夹,点击进去,找到jmeter.bat双击

如果觉得麻烦,可以鼠标右键jmeter.bat,快捷方式发送电脑桌面,就会方便很多。

5.2 搭建自动化接口测试框架

创建如下目录结构:test

 

test下:ant   data  JmeterAutoTest

1)ant:放解压好的ant软件

2)data:放数据

3)JmeterAutoTest 下:

  • app   pc

pc下:

  • resultlog   script

resultlog下:

  • html  jtl  (报告生成区)

script:脚本区(这一定要放一个测试脚本进去。就是jmeter保存的测试计划.jmx文件。

测试脚本:测试计划2.jmx      文件位置:F:\2020软件测试第二版\就业班6-20部分\16_就业班之接口及性能测试(共82集)\接口测试第二天\5-拷贝文件

 

 

把测试计划2.jmx复制到项目script目录下:

 

自动化接口测试框架—思维导图

 

5.3 安装以及配置ant环境变量

安装ant包:解压apacheAnt.rar。解压好了就安装好了。

 

ANT_HOME:       G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\ant\apacheAnt
Path:                    ;%ANT_HOME%\bin
CLASSPATH:      ;%ANT_HOME%\lib
验证是否配置成功:在dos 创建输入:ant -version

 

5.4 发送邮件&修改build.xml文件

首先要把ant包(apacheAnt)复制到test\ant目录下:

ant包(apacheAnt)的位置:    D:\测试软件\jmeter\ant

 apacheAnt包复制到test\ant下:在计算机打开项目test\ant位置复制比较快,在pycharm复制不太行。

然后:jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,保存

jmeter.save.saveservice.output_format=xml

用记事本打开文件,ctrl+f,搜索。它是默认csv格式存储,但前面#注销了,所以没起作用。

所以我直接加在了文件的最后。

注意:我的记事本打开文件,感觉很乱。可以用老师这个打开:

最后:

将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到”org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类,从而成功触发JMeter脚本

1)3个jar文件拷到项目测试框架test—ant—lib文件下(发送邮件)

三个jar文件位置:F:\2020软件测试第二版\就业班6-20部分\16_就业班之接口及性能测试(共82集)\接口测试第二天\5-拷贝文件

拷贝到这里。如果重复就替换

2)build.xml文件拷到pc目录下

build.xml文件位置:F:\2020软件测试第二版\就业班6-20部分\16_就业班之接口及性能测试(共82集)\接口测试第二天\5-拷贝文件

我本篇博客自动化测试执行成功了,build.xml文件是直接使用下面的build.xml完整版代码。

通过build.xml文件,执行脚本,生成测试报告。

修改build.xml文件

可以通过notepad打开,有颜色比较好看。也可以pycharm直接打开。

1.改成自己本地的jmeter

<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13" />

2.改成自己的jtl路径

<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\jtl" />

3.改成自己的html路径

<!-- jmeter生成html格式的结果报告的路径-->    
<property name="jmeter.result.html.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\html" />

4.project   pc   pc前目录。如果是移动端,可改成app

<project name="pc" default="all" basedir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest">

发送邮件:还是改build.xml文件的东西。

5.发送邮件邮箱(我用的是qq邮箱),接受邮件邮箱(163邮箱)

<!-- 接收测试报告的邮箱 -->
<property name="mail_from" value="107****@qq.com" />
<property name="mail_to" value="yangcheng_2020@163.com" />

6.发送邮件的邮箱用户名,密码,端口

<mail mailhost="smtp.qq.com" mailport="587" subject="Test Report!" messagemimetype="text/html" user="1071****@qq.com" password="anrlvjalsdjklsbeae" >

qq邮箱的密码,就不是登陆的密码。而需要登陆qq邮箱,发送短信,去获取密码(授权码)。qq的端口:587。mailhost=”smtp.qq.com”

注意:如果是163邮箱,密码直接是163邮箱登陆时的密码。端口是:25。可以百度查这些端口。

7.声明要运行的脚本路径

<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\script" />

build.xml完整代码:这里qq是发送邮件,163是接受邮件的。

<?xml version="1.0" encoding="utf-8"?>
<project name="pc" default="all" basedir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->    
    <property name="jmeter.result.html.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\html" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_from" value="1071183139@qq.com" />
    <property name="mail_to" value="yangcheng_2020@163.com" />
    <!-- 电脑地址 -->
     <!-- <property name="ComputerName" value="jkqsh-l0285" />-->
    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
        <antcall target="send" />
    </target>
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
            <testplans dir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\script" />
        </jmeter>
    </target>

    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>

    <target name="report">
        <xslt
        classpathref="xslt.classpath"
            force="true"
        in="${jmeter.result.jtlName}" 
        out="${jmeter.result.htmlName}" 
        style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
            <param name="dateReport" expression="${time}"/>
    </xslt>
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
    <!-- 发送邮件 -->
    <target name="send" >
        <mail mailhost="smtp.qq.com" mailport="587" subject="Test Report!" messagemimetype="text/html" user="1071183139@qq.com" password="xdoebsnxixfbbaig" >
        <from address="${mail_from}"/>
        <to address="${mail_to}"/>
        <message>This email was sent automatically by ANT. Please check the automation test report. Thank you!</message>
        <attachments> 
            <fileset dir="${jmeter.result.html.dir}">
                <include name="${ReportName}${time}.html"/>
            </fileset>
        </attachments>
        </mail>
    </target>
</project>

 

8.启动ant 执行脚本:cmd    先进入盘符:G: 然后cd进入pc目录下  输入ant   执行脚本,会生成测试报告(下面发送邮件配置好后,也是这样执行。会生成测试报告,并发送邮件。)

上面的东西我都验证过是可以成功的。pycharm是有新的测试报告,发送接受邮件都是成功的。

输入ant后,如果build失败了,有可能有以下原因:

1)网络不好(尤其是在图书馆)

2)pycharm打开项目在test这一层打开,不要其它无关的东西

3)build.xml文件的qq密码需要重新获取下

可以pycharm打开,这个上次都执行成功了:G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test

接受邮箱就会有一封新的邮件

qq设置获取密码:

1)登录电脑版QQ邮箱,选择最上方的“设置”

 2)如图选择“账户”,切换到账户详情页面。

 3)在账户页面往下拉,可以看到smtp设置,选择“开启”。

4) 按照弹出的窗口提示操作进行密保验证。有多种方式可以验证,比如手机令牌等。推荐使用短信验证。

5)按照短信验证的提示发送短信。发送成功后直接点击“我已发送”。

 6)弹出的提示中直接显示16位的授权码,可以复制下来,或者是记下来,千万不要记错了。然后点击“确定”。

以上就完成了qq密码(授权码)的获取。

注意:jmeter写好的脚本,保存为自动化测试框架的script目录下。

升级:ant只能执行一个,不能批量的进行。如果想再执行,需要还得再运行一下ant。使用下面的jenkins可以每隔多长时间执行一次。

5.5 使用jenkins实现持续集成

使用jenkins是为了定时执行脚本。

将jenkins(是一个网站)搭建在tomcat(服务器)下

1)需要安装tomcat:解压tomcat7.rar,解压完就安装好了。

2)jenkins.war复制到:D:\测试软件\jmeter\tomcat压缩\tomcat7\webapps   

注意如果有选择替换就可以。本篇博客其余处要拷贝的也是这样。

3)启动tomcat—-bin—–startup.bat(双击)

 

 

 

 出现running,说明运行成功。

tomcat闪退、启动失败原因
1)端口被占用

修改tomcat端口

tomcat7–>conf–>server.xml文件—>在该文件下将默认的8080端口修改即可 

例如:port:8090

2)异常退出

正确退出方法:1.ctrl+c命令 2.在tomcat7的bin目录下点击shutdown.bat

 

使用jenkins的步奏:

1.先启动tomcat—-bin—–startup.bat(双击)

2.输入网址:http://ip:端口/jenkins

http://localhost:8080/jenkins/

jenkin构建任务
1)新建–>输入item名称,选择“构建一个自由风格的软件项目”

2)构建触发器

 

 

有三种形式:

  • Build after other projects are built:另一个项目结束之后再执行
  • Build periodically:指定多长时间执行
  • Poll SCM:多久去svn拉一次代码

 

这里选择Build periodically

定义脚本执行的频率

日程表:H/2 * * * *(表示每2分钟执行),下面也有表示时间示例提示。

3)构建—>选择invoke ant—>高级—-在build file位置输入build.xml文件的路径,保存

4)点击返回面板选中该任务–>选择立即构建即可。就可以调用ant,执行打包过程。在这里,也就是执行生成测试报告的步骤

pc-html中生成的测试报告:我是直接在pycharm中看测试报告的

1)可以点击+号查看

 

2)可以看到有9个HTTP请求。有下面的信息:

Samples:9  (9个请求)

Failures:8     (8个失败了)

Success Rate:11.11%  (成功率是11.11%)

Average Time :平均时间

Min Time:最少时间

Max Time:最长时间

Sucess:每一个请求是否成功还是失败(fales失败   true成功)

 

 3)会显示每一个对应的响应和失败信息

 

 

停止jenkins中正在构建的项目:我是直接禁用项目的(有点暴力,但有用。不知道正确的怎么停止。):

1)有绿色圆圈说明项目没有被禁用,直接点击红色箭头指的项目

 2)直接点击禁用项目。就不会有任务一直在执行了,下次用,再启用就可以了。

 

还有一种停止正在构建的项目:点击红色的叉叉:

(但是对我没有用,因为我做的是定时任务,2分钟一次。)

补充:

测试软件的安装:F:\2020软件测试第二版\就业班6-20部分\16_就业班之接口及性能测试(共82集)\接口测试第一天\自动化接口软件

 jmeter+ant+jenkins安装位置:D:\测试软件\jmeter

 

版权声明:本文为zhangyangcheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangyangcheng/p/12628314.html