0
点赞
收藏
分享

微信扫一扫

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本


文章目录

  • ​​系列文章目录​​
  • ​​🖊今日学习目标​​
  • ​​🖊上一篇内容回顾​​
  • ​​(1)JMeter基本使用​​
  • ​​(2)核心元件​​
  • ​​(3)Jmeter参数化​​
  • ​​🖊作业​​
  • ​​昨日作业答案​​
  • ​​一、Jmeter断言​​
  • ​​响应断言​​
  • ​​案例1:检查百度首页的接口响应中包含“百度一下,你就知道”​​
  • ​​案例2:响应断言中,有多个待效验的测试数据​​
  • ​​二、JSON断言​​
  • ​​总结:​​
  • ​​断言持续时间:​​
  • ​​三、Jmeter关联​​
  • ​​正则表达式介绍:​​
  • ​​案例二​​
  • ​​正则表达式提取器​​
  • ​​案例1:获取传智播客首页的title,并作为参数传递​​
  • ​​案例2:获取传智播客首页的地址,把第5个校区地址作为参数传递(span为地址的校区)​​
  • ​​案例3:获取传智播客首页的地址,把第5个校区地址作为参数传递(span为地址/后面带一、二、三)​​
  • ​​xpath提取器:​​
  • ​​案例:获取传智播客首页的title,并作为参数传递​​
  • ​​json提取器​​
  • ​​案例:提取天气接口中的城市信息,作为参数在访问百度首页时传递​​
  • ​​JMeter属性:​​
  • ​​案例:​​
  • ​​四、自动录制脚本​​

🖊今日学习目标

掌握Jmeter断言技术
掌握Jmeter关联使用
掌握Jmeter自动录制脚本

🖊上一篇内容回顾

(1)JMeter基本使用

元件:配置元件、前置处理器、定时器、取样器、后置处理器、断言、监听器
作用域:
取样器:是核心,本身无作用域
逻辑控制器:只对子节点起作用
其他元件:
父节点是取样器,只对父节点起作用
父节点不是取样器,对父节点的所有后代节点(子节点、子节点的子节点等)都起作用
执行顺序:
同一个作用域的不同元件:配置元件、前置处理器、定时器、取样器、后置处理器、断言、监听器
同一个作用域的相同元件:从上到下的顺序

(2)核心元件

线程组:
分类:普通线程组、setup线程组、teardown线程组
属性:线程数、ramp-up时间、循环次数、持续运行时间、延迟启动时间
HTTP请求
GET请求(在URL的路径中)
URL:协议、域名、端口、路径、请求方法GET、编码格式
参数:
在路径中添加参数。?参数名 = 参数值&参数名 = 参数值
在参数列表中添加。格式:参数名,参数值
POST请求(在消息体数据中)
URL:协议、域名、端口、路径、请求方法POST、编码格式
参数:
在参数列表中添加(只能添加form格式)
在消息体数据中添加(任意格式)

查看结果树
请求:请求行(URL)、请求体(参数)
响应:状态码、响应体

(3)Jmeter参数化

作用:使用不同的测试数据,调用相同的测试方法
用户定义的变量:定义全局变量
用户参数: 不同的用户使用不同的测试数据
CSV数据文件设置: 不同的用户,或者同一个用户的多次循环,都可以获取不同的数据
函数:不同的用户,或者同一个用户的多次循环,都可以获取不同的数据,不需要提前准备数据。

🖊作业

问题描述

当发送www.jd.com的http请求时,查看结果树看到的发送消息和HTTP取样器中配置的不完全一样?

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言

原因分析:

查看结果数中最外层HTTP请求的 请求信息和响应信息,应该与子节点中最后一个HTTP请求的请求

消息和响应消息一致;

配置的HTTP请求,应该与子节点中第一个HTTP请求的请求信息一致

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_02


Jmeter可以自动判断/处理相应状态码

昨日作业答案

答案:
1、准备CSV数据文件 —— 1000个登录的用户名密码
2、添加线程组,设置线程数为1000
3、添加CSV数据文件设置
4、添加HTTP请求 - 登录,使用读取的用户名密码
5、添加HTTP请求 - 支付 —— 使用counter函数添加不同的测试金额
6、查看结果树

一、Jmeter断言

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_HTTP_03

响应断言

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_04


性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_05

案例1:检查百度首页的接口响应中包含“百度一下,你就知道”

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_HTTP_06

案例2:响应断言中,有多个待效验的测试数据

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_07

二、JSON断言

参数:

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_08


案例:

请求: http://www.weather.com.cn/data/sk/101010100.html

检查:让程序检查响应的JSON数据中,city对应的内容是否为“北京”

总结:

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_09

断言持续时间:

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_10


案例:

请求: https://www.jd.com

检查:让程序检查响应时间是否大于100毫秒

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_11


性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_12

三、Jmeter关联

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_13

正则表达式介绍:

正则表达式:就是一个公式,或者说一套规则,使用这套规则可以从任意字符串中提取出想要的数据内

公式格式:左边界(匹配符号)右边界:可以提取出想要获取的数据内容
.:是通配符,可以代表任意字符(除换行回车)
*: 代表前面的字符出现0次或者多次 .
*匹配规则:找到左边界值后,往右查找有边界,找到最后面的右边界,中间的所有数据都被记录下来
?: 代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要有匹配的右边界就停止继续查找;再次查找 左边界和右边界

公式格式:左边界(.*?)右边界

百度一下,你就知道百度一下,你就知道(.*?)

案例二

原始文本:
021-1234-1234
022-1234-1235
023-1234-1236
024-1234-1237
025-1234-1238
026-1234-1239
027-1234-1230

要求:匹配出 城市号、地区号、个人号码三组

正则表达式匹配:

(.*?)-(.*?)-(.*?)\n

结论:
通过一个正则表达式可以提取出多组数据,每组数据设置对应的左边界和右边界即可
每一组数据都可以有一个或者多个值

正则表达式提取器

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_14

案例1:获取传智播客首页的title,并作为参数传递

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_15

案例2:获取传智播客首页的地址,把第5个校区地址作为参数传递(span为地址的校区)

响应中的地址格式显示:<p><span>地址</span>上海市浦东新区航头镇航都路18号万香创新港</p>

方法1

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_16


方法2

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_17


引用:以列表索引的方式来引用。格式:${变量名_索引} ,索引从1开始

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_18

案例3:获取传智播客首页的地址,把第5个校区地址作为参数传递(span为地址/后面带一、二、三)

地址格式1:<p><span>地址一</span>昌平区建材城西路金燕龙办公楼一层</p> 地址格式2:<p><span>地址</span>上海市浦东新区航头镇航都路18号万香创新港</p

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_19


性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_python_20

xpath提取器:

案例:

//a[@id=‘kw’]: 在HTML页面中,找出a标签(有一个属性为id,且id的值为kw)

//a : 找出所有的a标签

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_21

案例:获取传智播客首页的title,并作为参数传递

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_22

json提取器

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_23

案例:提取天气接口中的城市信息,作为参数在访问百度首页时传递

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_24

JMeter属性:

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_25


性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_26

案例:

1、线程组1:请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html,获取返
回结果中的城市名称“北京”**
2、线程组2:请求https://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数**

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_27

四、自动录制脚本

原理:

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_28


jmeter脚本录制:

1.添加HTTP代理服务器,并进行配置

•加HTTP代理服务器:测试计划(右键)->非测试元件->HTTP代理服务器

•配置代理服务器的参数

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_29


性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_30


2. 开启windows操作系统的浏览器代理

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_后端_31


3. 启动代理服务器,开始录制

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_数据_32


性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_开发语言_33


4. 在浏览器页面中进行操作,成功后,就能在JMeter当中看到抓取到的接口请求了。

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_HTTP_34


练习: 设置过滤规则,录制tpshop的登录脚本,运行脚本观察测试结果

当使用代理的过程中,发现抓不到包,几个可能的情况:
过滤规则设置有问题
重启Jmeter代理服务器或者重启Jmeter
换浏览器来使用(Chrome、IE)
检查PC机中的代理设置是否处于可用状态
拔掉网线,抓包


举报

相关推荐

0 条评论