Jmeter实用

【第五章】jemter参数化实战

2020-11-03  本文已影响0人  码上版码

本章大纲

什么时候需要参数化技术

参数化技术是什么

jmeter实现参数化

什么时候需要参数化技术

单点登录:如果10个用户登录,用户名和密码不做参数化,后面的请求会将前面所有用户账号顶掉。

adduser:增加用户但手机号唯一,就需要对手机号做参数化

多点登录可以不做参数化,如果要真实的模拟用户操作,还是需要做参数化的

参数化技术是什么

参数化一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时置顶参数的取值范围和规则

jmeter实现参数化

参数化流程:

​ 找出需要参数化的数据

​ 准备提供给参数化需要的数据源

​ 把脚本里面的常量--变量(使用之前的数据源数据)

jmeter参数化方式:

1、CSV 需要配置元件

​ 使用场景:账号、密码

​ token是有时效的,一般有两种方式:1. 固定时效,比如:1个月;2. 不用就时效

注释:首先要明确参数化的作用域:如果是对整个测试计划有用,将其放在测试计划下面,如果是对这个线程组有用则放在线程组下面;如果是对这个请求有用,则放在这个请求下面。
1-1 添加csv数据文件设置:


image.png

1-2 设置数据文件:


image.png
1-3 将http请求参数常量改成变量:
image.png
重新发起请求即可

2、函数式:

随机数:通过函数助手 - _Random,比如:手机号就可以用随机数来表达
time:通过函数助手 - _time,比如:订单号,编号类的就可以用时间戳来表达,默认ms,13位数据,如果是s,10位数据
image.png

果接口的请求头包含token时,我们需要从之前的接口中提取token,将提取到的token写入当前接口请求头信息中。

示例:如果用jmeter测试,找到之前的接口,添加 - 后置处理器 - json提取器:输入token变量名,json path的语法格式:.token, ![image.png](https://img.haomeiwen.com/i9622367/352f32b9abcb983c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![image.png](https://img.haomeiwen.com/i9622367/c1bcf57bd4f09175.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 我们可以在“线程组 - 添加 - 取样器 - 调试取样器”,查看token是否提取成功,接口调通就不需要使用 调试取样器,直接禁用即可。 ![image.png](https://img.haomeiwen.com/i9622367/057467cd367e2ac0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 将提取出的token放入我们要测试的http请求的请求头中,token值:{getToken}

image.png
image.png
Jmeter创建接口脚本时遇到的问题?

msg:token值为空?
解决方案:在请求头中添加一个token
message:客户姓名必须为中文?
解决方案:请求中添加编码格式
message:该客户手机号码已存在?
解决方案:手机号必须做参数化,通过函数助手中的__Random,设置最小值和最大值,生成表达式并拷贝,将其与写死的手机号替换


image.png
3、变量

接口环境不同,使用的服务器ip就不同,我们可以“线程组 - 添加 - 配置元件 - 用户定义的变量”


image.png
image.png
4、编程式
引入外部的jar(比如:加密、算法、环境类的jar--开发给的),Java、class,直接导入
image.png
使用beanshell编程
import com.uncleyong.MD5Util;
String password_md5 = MD5Util.encryptToMD5("123456");
vars.put("password_md5", password_md5);
image.png image.png

发送请求后,从查看结果树中可以看到请求的密码加密了


image.png
上一篇 下一篇

猜你喜欢

热点阅读