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

更多功能测试以及全套学习路线图均在专栏,↑↑戳进去领取~

系列文章目录

软件测试功能到自动化学习路线图,2022年最新版技术栈
软件测试01:从了解测试岗位职能和测试流程开始,附作业

软件测试实战项目web资讯管理平台—黑马头条测试

身为开发必知必会的Linux:Linux远程连接/命令的使用
Linux命令大全,唯一以案例详解文,持续更新中
Linux命令大全以及数据库,唯一以案例详解文,已完结

Web自动化测试01:认识web自动化在什么项目中适用
Web自动化测试02:Web自动化测试工具选择大全
。。。。更多内容看专栏哦!
Web自动化测试11:Selenium之frame切换、多窗口切换
Web自动化测试12:Selenium窗口截图、验证码处理

接口测试-第01天-万字教程带你入门接口测试

接口测试-第04天-Postman读取外部数据文件(参数化)

性能测试-第01天-从理解到体验,最后能够对比说出Loadrunner和JMeter的优缺点
性能测试-第02天-JMeter环境搭建完成第一个案例
性能测试-第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断言和关联使用、自动录制脚本_第1张图片

原因分析:
查看结果数中最外层HTTP请求的 请求信息和响应信息,应该与子节点中最后一个HTTP请求的请求
消息和响应消息一致;
配置的HTTP请求,应该与子节点中第一个HTTP请求的请求信息一致
性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_第2张图片
Jmeter可以自动判断/处理相应状态码

昨日作业答案

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

一、Jmeter断言

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

响应断言

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

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

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

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

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

二、JSON断言

参数:

性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_第8张图片
案例:
请求: http://www.weather.com.cn/data/sk/101010100.html
检查:让程序检查响应的JSON数据中,city对应的内容是否为“北京”

总结:

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

断言持续时间:

性能测试-第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断言和关联使用、自动录制脚本_第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张图片
在这里插入图片描述
4. 在浏览器页面中进行操作,成功后,就能在JMeter当中看到抓取到的接口请求了。
性能测试-第03天-掌握Jmeter断言和关联使用、自动录制脚本_第33张图片
练习: 设置过滤规则,录制tpshop的登录脚本,运行脚本观察测试结果

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

你可能感兴趣的:(2022年测试—功能入门到项目,python,开发语言,后端)