守护麦田  
  • 全局变量

jmeter 中好多接口 中 有很大一部分 ip,port都是一样的,但在每个接口中都写了一遍。 如果做很多很多接口,每个都写一遍,会很麻烦。那 可以设置一个全局变量,只写一次,其他使用到的地方直接调用即可;

设置全局变量, 

 使用全局变量

  •  参数化

参数化:不使用固定的数据,将请求的数据动态化;

  • 随机数:生成随机数,函数助手 - Random,最小值,最大值,点击生成,每次随机生成不同的随机数

 

 id =1 ,将1 替换成随机函数;替换后,多次运行接口,验证每次id 都不一致;

jmeter中 有个原则:想要用随机数生成的数据 替换谁,就把谁 换成 生成的函数。 程序运行的时候,遇见函数,会先运行函数,在执行接口。

  • 随机字符串

 原来的json请求:

 

替换后的json请求:

 username:“test” ,替换: 只替换test 字符,不动“” ; jmeter 的原则是替换谁,只替谁,其他不动。

  • 计数器

计数器:会产生连续的数字; 线程组 -添加 -配置元件 --计数器;   每循环一次加1;

计数器跟循环相关联; 计数器需要循环才会获取下一个连续数字;

计数器会产生一个全局(针对所有线程/虚拟用户)连续数字

 5个线程,每个线程执行1次; 可以用接口验证;

 5个线程,每个线程执行2次。

计数器:线程组-添加-配置元件-计数器

 

 

2个线程,每个线程循环3次; 执行的结果:线程1 运行3次,线程2运行3次;

6次请求中,计数器取数:1-6,依次取值; 计数器会产生一个全局(针对所有线程/虚拟用户)连续数字

 计数器:如果想要 不重复,每个线程 都有自己的一套

如果想要每个线程都有自己的一套,跟其他线程不关联,可以在计数器中勾选 与每用户独立的跟踪计数器;勾选上后,每个线程独立;

 

文件参数化

  • 文件参数化 csv文件read: 相对于随机数,随机字符串,也不要连续的。 要想从文件中获取,文件参数化使用场景更加适合真实。
  • 比如说,登录接口,登录接口需要用到的用户名/密码,必须是数据库中存在的注册的数据;可以从数据库中把数据导出来,导到文件里面;然后去文件中读取 账号/密码。

需求是:参数化的数据必须是去读取文件中的数据,必须是文件中已经有的数据;

csv /txt 本质上是一种文件,都是文本文件,反是可用记事本打开的文件,都是文本文件;

excel/word/图片/音视频 是二进制文件,不能用函数打开。

比如,我的文件是csv文件,文件中内容:两列,用户名/密码,以逗号分隔; 只有两列数据,想读取第1列,jmeter csvread 函数中用 0表示;

想读取第2列,jmeter csvRead 函数中用1 表示;

 第一列:放置文件路径+文件名
第二列:读取的哪一列数据,0代表第1列数据; 1 代表第2列数据;点击生成,生成读取的数据。将函数 放置 接口的用户名 value列;
将第2列数据,点击函数生成,放置接口 密码value列;

 尝试一下,读取成功;

尝试: 线程数1, 循环2次,运行,查看结果数,发现两次接口调用都是获取的文件第1行数据
   线程数1,循环4次,运行,发现4次接口,都是获取的文件第1行数据;

线程2,循环2次,运行,查看结果,发现线程1 调用2次,都是第1行数据; 线程2调用2次,用的都是第2行数据;
线程5,循环2次,运行,查看结果,线程1调用2次,使用第1行数据;   线程2调用2次,使用第2行数据; 线程3/4调用2次,使用第3/4行数据; 线程5调用2次,使用第1行数据;

CSVRead 函数特点:   1个线程 即1个虚拟用户;按照用户来分配数据的。
1   , 1个线程无论循环多少次,永远读取的是同一行数据
2.   想要读取下一行,需要多个线程,每个线程分配一行数据
3.   如果线程数超过数据的行数,会重新从第一行数据分配读取

很实用,1个线程 代表1个虚拟用户,永远读取的都是同一行数据;就代表1个虚拟用户 永远都是用自己的数据。
如果线程组中有多个接口,第1个接口,第2个接口 用的用户都是同一个用户,用csvread 第一个接口生成的用户函数,可放第二个接口中,第二个接口使用的还是同一行数据; 如真实场景,用户a 登录成功后,搜索/下单/再搜索/继续下单,用户账号 是一个,登录一次,然后后续所有接口都是用此登录账号来进行操作。

缺点: 如果一个txt文本中有多条数据,用CSVRead 文件参数化来读取,设置一个线程,循环多次来读,是会报错的。
   因为CSVRaed 参数化,一个线程的话,永远只读 第一行数据。

 

jmeter 中,线程 = 虚拟用户数,

循环次数 = 每个线程/虚拟用户 执行多少次请求;

 

posted on 2023-12-18 00:47  守护麦田  阅读(65)  评论(0编辑  收藏  举报