jmeter 入门一

JMeter基于Java开发,需要系统有安装JDK环境。解压后进入bin目录,点击jmeter.bat

 \\参数化

Jmeter参数化有4种方法,本例仅介绍最普遍及简单的1个方法,csv文件导入配置

1、准备参数文件

2、配置CSV数据设置配置项:在线程组右键添加-->配置元件-->CSV Data Set Config

3、修改3.2.4中构造的HTTP请求:username修改为参数,从csv文件中引用

4、修改测试计划,使得脚本重复

5、运行后,即可看到结果如下:

1.2.7. 从响应结果提取内容,进行断言  

上述结果,永远都会执行正确,只要请求发送成功,并没有对返回结果进行断言判断,本例介绍断言设置

1、正则表达式提取内容:从响应内容中提取内容与文件提取内容进行对比,本例采用对比的结果为:员工号

在通讯录查询的HTTP请求上右键添加-->后置处理器-->正则表达式提取器,配置如下:

关于正则表达式的规则,请自行查找文档学习,此处提取返回聂荣的员工号后,以test参数引用。

2、增加断言:以提取的员工号test和csv文件中读取的员工号进行对比,判断结果是否正确

在通讯录查询的HTTP请求上右键添加-->断言-->响应断言,配置如下:

在线程组右键添加-->sampler-->Debug Sampler:用于查看正则表达式提取的内容

3、运行后,查看结果

发现第二条参数用例执行结果失败,展开后,查看响应断言的详细信息,发现test并不匹配T123451,也就是说第二个测试人员的员工号不是T123451。

接下来我们查看详细的响应数据,看看问题到底在哪里

从上图可以看出,第二个测试人员的员工号为T12345,而不是T123451,所以断言不通过。

其实,此错误是csv文档中故意设置错误的,以验证断言的正确性。

\\

1、添加线程组:

测试计划 -> 添加 -> Threads(User) -> 线程组,添加后进入如下界面:

 

jmeter 发post请求

 

线程数:表示将模拟多少个用户进行测试。
Ramp-Up Period(in seconds):线程启动间隔,所有线程将在这个时间内依次启动。
循环次数:所有线程执行一次为一次循环。

如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

2、添加采样器:
采样器可理解为针对前面创建的线程需要做什么事情,这里以添加HTTP请求为例
1)线程组 -> 添加 -> Sampler -> HTTP请求,添加后进入如下界面:

上图为压测http的get类型接口,url中${newId}和${page}是动态参数,需要从文件中获取

服务器名或ip:填写服务器ip地址(例如:192.168.1.23)

路径:填写url接口剩余部分;
协议:向目标服务器发送http请求时的协议,可以是http或者是https,默认值为http
方法:发送http请求的方法,可用方法包括get、post、head、put、options、trace、delete等。
Content encoding:内容编码方式
路径:目标url路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送http请求后得到的响应是302/301时,jmeter自动重定向到新的页面。
Use keep Alive:当该选项被选中时,jmeter和目标服务器之间使用keep-Alive方式进行http通信,默认选中
Use multipart/from-data for http post:当发送http post请求时,使用Use multipart/from-data方法发送,默认不选中。
同请求一起发送参数:在请求中发送URL参数,对于带参数的URL、jmeter提供了一个简单的对参数化的方法。用户可以将url中所有参数设置在本表中,表中的每一行是一个参数值对(对应URL中的名称 名称1=值1 )
同请求一起发送文件:在请求中发送文件,通常,http文件上传行为可以通过这种方式模拟。

2)添加CSV Data Set Config 来参数化

在d盘简历如下data.txt文件,在variable Names中输入newId,page后,在http请求中就可以通过${newId}获取到

 

[html] view plain copy
 
  1. 1,1  
  2. 11,1  
  3. 111,1  

 

3)如果是post接口,则把post数据写到parameters下面

 

 

3、添加监视器
监视器可以理解为针对结果的不同查看方式。JMeter里提供了多种结果表现形式。可通过 HTTP请求 -> 添加 -> 监视器 -> 察看结果树、聚合报告等等。

聚合报告各指标:

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,单位为毫秒。当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

  \\察看结果树

。 
这里写图片描述

这里写图片描述
参数说明: 
1. 名称:控制器的描述性名称,显示在左边节点上,并用于命名事务 
2. 注释:控制器注释信息,非必填项 
3. 文件名:载入文件名 
4. Log/Display Only: 仅日志错误、Success ;勾选中显示对应的日志信息 
5. Configure:定义report中自己所关心的数据项。 
6. 取样器结果: 
Thread Name: 线组名称 
Sample Start: 启动开始时间 
Load time: 加载时长 
Latency: 等待时长 
Size in bytes: 发送的数据总大小 
Headers size in bytes: 发送头大小 
Body size in bytes: 发送数据的其余部分大小 
Sample Count: 发送统计 
Error Count: 错误统计 
Response code: 返回码 
Response message: 返回消息 
Response headers:返回头信息 
7. 请求 
数据获取方式、路径、地址等以及传递的参数、cookie 
8. 响应数据 
响应加载的页面html

(三)断言结果

这里写图片描述 
断言结果,显示执行断言的结果信息。 
根据断言设置的条件,执行显示结果。 
如下图,设置的HTML Assertion中设置 警告阈值在3,执行测试程时警告值是7,在断言中会显示对样断言检查的HTTP请求有错误,并给出错误的原因,帮助修改调整执行测试。 
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/shuimengzhen/article/details/53520521
posted @ 2018-03-15 16:02  行者慢  阅读(247)  评论(0编辑  收藏  举报