Jmeter实验案例
样例1
- 一个线程组,添加http请求
- 线程数为2,循环3,查看结果
- 线程数为2,循环2,查看结果
- 分析:
- 线程数代表虚拟用户数,用户数越多,负载越大
- 循环次数代表运行时间,次数越多,运行时间越长
GET POST传递参数
- GET请求:URL路径为http://www.baidu.com/S?wd=test
- 要求:使用http请求-路径来传递get请求参数
- 样例3
- GET请求:URL路径为https://www.baidu.com/S?wd=test
- 要求:使用http请求-参数列表来传递get请求参数
- 样例4
- POST请求:URL路径为https://www.baidu.com/S,请求体为wd=test(form表单)
- 要求:使用http请求-参数列表来传递post请求的form格式参数
- 样例5
- POST请求:URL路径为http://www.baidu.com/S,请求体为wd=test(form表单)
- 要求:使用http请求-消息体来传递post请求的form格式参数
- 如何配置发送http请求
- 发送get请求(请求参数在路径中)
- url:协议 服务器ip等
- 参数:路径后面添加参数,格式:?键名=键值&键名=键值
- 发送post请求(请求参数在消息体中)
- 参数:在消息体中添加请求体post(json/form),参数列表中添加参数(form)
- 发送get请求(请求参数在路径中)
参数化样例----不同测试用例调用相同测试方法
- 用户定义变量:定义全局变量,但每次取值(无论是否相同用户)都是固定值
- 用户参数:保证不同用户针对同一组参数,取到不同的值,但用一用户多次循环时,会取到相同的值
- csv数据文件设置:不同用户及同一用户多次循环,可以取到不同的值,但需要手动进行测试数据的设置
- 保证不同用户多次循环时可以取到不同的值,不需要提前设置
- 定义变量实现----全局变量
- https://www.baidu.com:443
- 使用用户定义的变量配置被测系统的协议域名和端口号
- 用户参数----为每个用户分配不同的参数值
- http://www.baidu.com
- 第一个用户请求附带参数:name=“张三”&age=28;第二个用户请求附带参数:name=“李四”&age=30
1.什么时候使用用户参数?
针对用一组参数,不同用户来访问时,获取不同的值
2.使用用户参数步骤
1>添加线程组,设置线程数为n(表示模拟的用户数)
2>添加用户参数,每一列添加多个变量名,每一列为一组用户的数据
3>添加http请求,引用定义的变量名,格式${变量名}
4>添加查看结果树
- CSV数据文件设置----文件方式参数化
1.何时使用csv数据文件设置
不同用户或者同一个用户多次循环,获取不同的值
2.使用csv数据文件设置,进行参数化的步骤
1> 添加csv文件
2> 添加线程组,读取csv数据(注意格式),第一行没名不用忽略
3> 添加csv数据文件设置
- 函数----随机数据
- http://www.baidu.com/S?num=1
- 要求:每个用户每次执行脚本都可以使用不同的值
Jmeter关联
- 正则表达式提取器(对任意格式进行提取)
- Xpath提取器
取到的值
1> 何时用XPATH提取器?
针对html响应格式数据时
2>步骤:
添加线性组-添加http请求-itcast
添加XPATH提取器(勾选use tidy),XPATH Query用于提取值得XPATH,用//代替
添加http请求百度
- JSON提取器
这个例子实在是写不正确怎么回事,不写了
1> 什么时候用XPATH提取器?
针对json提取器进行提取
2> 具体操作步骤?
添加线程组-添加http请求-添加json提取器-参数名路径写对~-添加查看结果树
jmeter属性—跨线程组使用
1.添加线程组1
2.添加HTTP请求
3.添加json提取器
4.添加beanshell取样器(将json提取器提取的值保存为jmeter属性)
读取
逻辑控制器
- (if)控制器
1.使用用户定义的变量,定义一个name,name的值可以是baidu或itcast
2.根据name变量值实现对应网站的访问
`````````````````步骤`````````````````
1.添加线程组
2.用户定义的变量
3.添加if控制器,判断name是否等于baidu
4.添加http请求,访问百度
5.添加if控制器,判断name是等于itcast
6.添加http请求访问itcast,查看结果树
注:取消勾选interpret,使用多个name要修改用户定义的变量
使用函数解析,勾选interpret