jmeter 脚本录制/参数化/函数

一、录制脚本(了解即可,不推荐)

使用jmeter代理录制:

  1. 打开浏览器的代理服务器(IP设置为127.0.0.1,端口自己设置)

  2. jmeter中添加一个线程组

  3. jmeter中添加非测试元件-->HTTP代理服务器

  4. 设置端口要与浏览器的代理服务端口一致

  5. 目标控制器,选择已添加的线程组

  6. 过滤无用的脚本,选择Requests Filter---->选择排除模式----->添加,过滤不需要的gif,php,txt,png,比如 .*\.gif.*    , .*\.php.*  ,   .*\.txt.*   

  7. 点击启动按钮

  8. 浏览器访问网页

  9. 成功后,将没用的脚本删除,留下可用的脚本,运行,是否会成功

使用badboy录制:

  1. 下载badboy:http:www.badboy.com.au/

  2. 打开,点击工具栏上的红色圆形按钮,在地址目中输入被测试项目地址

  3. 录制完成后,点击工具栏旁边黑色按钮,结束录制。选择“文件”--Export to Jmeter...

  4. 打开jmeter,选择“文件”-->“打开”,选择刚才保存的文件(.jmx类型),将文件导入进来了。
二、参数化

参数化方式:

  1. 用户自定义变量(User Define Variables)

  2. 用户参数(User Variables)

  3. CSV(CSV Data Set Config)

场景:注册接口,每次都需要一个没有注册过的手机号才能注册成功,因此需要参数化,每次自动生成一个不同的手机号

1.用户自定义变量

用户自定义变量有两种方式

  1. 测试计划中的用户定义变量

  2. 线程组-->配置元件-->用户定义的变量

用户定义的变量是全局变量----可以跨线程组被引用

用户定义的变量 ,在jmeter启动时获取一次值,在运行过程中,不会发生改变

eg:用函数助手(选项-函数助手对话框-选择随机数函数__Random),随机生成手机号后8位

将随机生成手机号的字符串,直接粘贴的用户定义的变量中的value中;手机号前3位号段,可以自行定义:

将用户定义的变量:mobilephone作为参数,设置到注册请求中

查看结果树,运行。

这样,就可以重复发送注册接口的请求,不需要每次修改一次手机号了

2.用户参数

用函数助手(选项-函数助手对话框-选择随机数函数__Random),随机生成手机号后8位(同上)

用户参数页面点击添加变量,填写名称

将随机生成手机号的字符串,直接粘贴的用户参数中的用户中;手机号前3位号段,可以自行定义:

将用户定义的变量:mobilephone作为参数,设置到注册请求中(同上)

查看结果树,运行

重点:

用户参数只有1种方式:线程组-->前置处理器-->用户参数

用户参数是局部变量。在哪个线程组中设置的,就只能在当前线程组中被引用,不能跨线程组使用

用户参数在jmeter启动时获取一次值,在运行过程中,还会动态获取值

用户参数可设置每次迭代更新一次

扩展:线程组相当于虚拟用户数

一个线程组循环3次:

3个线程组,每个线程组循环1次:

3.CSV文件

将登录的username,password参数化在CSV文件、或者txt文件中。

添加配置元件-->CSV DATA set config

  • 文件路径:最好使用相对路径     ./data.txt (./data/csv) 或者 /data.txt (/data.csv)
  • 文件编码:UTF-8
  • 变量名:用英文逗号分隔
  • 忽略首行:True(表示忽略)、Fasle(表示不忽略)
  • 分隔符(用户\t代替tab):文件里两列用什么隔开,在这输入什么。
  • 是否允许带引号:一般是False
  • 遇到文件结束符再次循环:True(表示循环)、False(表示不循环)
  • 遇到文件结束符停止线程:True(表示结束)、False(表示不停止)
  • 线程共享模式:所有线程、当前线程组、当前线程  

 将传入的参数username,password参数化

在线程组中设置,循环6次,那么运行查看,依次取文件里面的数据

注意:

如果txt文件中,列分隔符不是逗号,是一个tab,那么CSV控件中也要修改分隔符为\t

txt 、CSV文件,优先选择txt文件。CSV文件消耗的内存大,jmeter消耗的内存小,会直接影响性能

三、函数

注意:双下划线开头,名称区分大小写

1.__digest   加密

2.__IterationNum 迭代数

3.__threadNum  线程号 (起始值是1)

4.__property / __P获取属性

5.__setProperty  动态的设置属性

6.__randomString  生成随机字符串

7__time 获取时间戳

8__V 拼接函数

函数具体使用参见帮助文档

 

posted @ 2020-10-25 22:34  尐樣ル~  阅读(160)  评论(0编辑  收藏  举报