Jmeter
一、Jmeter连接数据库
1、打开Jmeter,在Jmeter—测试计划中添加mysql的jar包,见如下截图:
2、添加好jar包后,添加jdbc,并进行设置,如下图
3、添加JDBC Request,然后在JDBC Request中操作数据库见截图
需要注意的是,在jdbc request中操作数据库时,需要根据不同语句,来选择不同的query type(执行类型)
如果是insert、update、delete等语句,需要更改query type
执行多条语句的时候,不同执行类型的语句不能放在一起
4、察看结果树
二、Jmeter的参数化问题
如果参数是应用于所有脚本,则将参数化的文件设置在线程组下层,如果需要应用于某一个脚本,则增加至某一脚本下层
jmeter参数表达式为:${参数名}
一般参数化的时候都需要设置线程组的循环次数等,具体如下图:
1、文件参数化:
从文件中读取的话,三个步骤
1、读取文件
2、取文件内容里面的参数,给它一个名字
3、使用值
从文件读取的话,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的
将参数写到txt文档中,然后用jmeter调用
(1)文件写好后,添加CSV Data Set Config
具体实施案例如下:
(2)脚本中设置参数
注意文件中有中文的问题,需要设置内容编码为utf-8
(3)察看结果树,显示执行成功
2、函数参数化:
函数助手的话,可以按照规则生成一些参数,比如说随机数取当前时间,最常用的就是这两种。
随机数__Random,可以在你指定的一个范围内取随机值
取当前时间__time,如果在有一些需要传时间的情况下可以使用,日期格式是:
yyyy-MM-dd HH:mm:ss
年-月-日-小时:分钟:秒
取唯一id,__UUID,这个就是每次会生成一个随机的uuid,都是唯一的
函数参数化,找到函数助手,生成函数字符串,然后直接应用于脚本即可
函数助手所在位置如下图:
具体应用案例如下图:
3、用户定义的变量
在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。
一般这个变量应用于所有脚本,设置在外层,如下图:
三、Jmeter关联
举例:有一个充值的接口,但是需要登录后才能进行充值,要确定是否登录,则需要去登录接口取一个sessionid,但是每次登录这个sessionid都是变化的,所以我们需要对这个sessionid进行关联处理,在jmeter中,我们可以通过利用json path抽取变量或正则表达式的方式获取变量
1、利用Json Path 抽取数据:在哪个接口获取变量,则json path放在哪个接口下面
(1)先在登录接口执行登录操作后,找到察看结果树中响应数据里的sessionid看一下是属于哪一层下面的,然后在对应的jsonpath espression中写上,格式为:$.XXX.XXX
(2)在充值脚本中进行参数设置:
因为需要添加cookie,所以需要在脚本中添加HTTP Cookie管理器,在cookie管理器中写入抽取的数据。
名称=admin用户登录名,值=登录里的session ,域=“服务器名称或IP” 路径:空,安全:不选,如选择,则将登录名加密
2、利用正则表达式抽取数据
(1)根据登录接口的响应数据返回的json串,来写正则表达式
(2)
四、Jmeter断言
断言是什么呢,它是用来检查返回结果对不对的。
用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。