Jmeter 使用
1. 可以用Os Process Sampler 来模仿 cmd 启动 exe 文件
在Command: 输入 路径, 比如 D:\work\fiddler.exe, 可以通过timeout 强制关闭
2.JDBC Connection Configuration 配置
在Variable Name 填入变量名, 给之后的JDBC sampler 使用, 在Database URL 填数据库的相关信息,
eg: jdbc:sqlserver://机器名:端口号;DatabaseName=****;integratedSecurity= true (此处是用电脑账号登录,如果使用账户密码登录替换掉integratedSecurity= true)
JDBC Driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver
3.通过正则表达式获取response 数据。
正则表达式:提取内容的正则表达式【稍注意一下:()表示提取,对于你要提前的内容需要用小括号括起来】
匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。
4. 在JDBC Request 中引用 正则表达式提取的值
Query Type 选 prepared Update Satement(此处例子是删除功能)
方法1:直接在语句里参数化 delete from dbo.XXX where file_id =${file_id}
方法2; 可以delete from dbo.XXX where file_id = ?, 然后在 Parameter values: file_id , Parameter Types: INTEGRE . Variable names: file_id . 可以填多个。
5. 基于file_id 来删除N 个table里面 file_id 为 某个值的记录。
首先或者这个file_id :select file_id from dbo.xxx where file_name like '%sample%' , 然后用正则提取这个file_id ,([0-9]+)
然后创建一个 Loop Controller, 里面有CSV Data Set Config, 事先把 每个table都保存在外部文件 txt 中,逐个读入,读完后就end,设置好后,在JDBC Request 里面 直接调用。delete from ${table} where file_id = ${file_id} ,然后就会循环的把每一个table 都delete一遍。几个table就在loop里面设置循环几次。
6. 可以在Function Helper 查看Jmeter提供的内置函数, 常用的有 获取本机地址IP: ${_machineIP()}, 随机数 :${_Random(,,)}, 随机生成字符串:${_RandomString()}
7.
/20190226/
Tread Group -> Scheduler
当设置scheduler的时候,Loop Cotroller 需要勾选Forever, 不然会覆盖掉Duration的设置。然后duration和startup delay 会覆盖掉start time 和 end time
8. 全部变量(不同进程)的传递
使用:
9.启动多维度报告。
9.1 CMD 启动非GUI模式
9.2 运行如下命令:
jmeter -n -t D:\testing.jmx -l D:\Jmeter\result.jtl -e -o D:\Jmeter\Report
这条命令的参数解读如下:
-n :以非GUI形式运行Jmeter
-t :testing.jmx 脚本路径
-l :result.jtl 运行结果保存路径,(.jtl)此文件必须不存在
-e :在脚本运行结束后生成html报告
-o :用于存放html报告的目录
4. 查看HTML报告,在文件夹Report下生成了多个文件,打开index.html文件,就能看到各种报告。
10. beanshell
https://blog.youkuaiyun.com/qq_16510189/article/details/80405772
https://blog.youkuaiyun.com/u011466469/article/details/78322513