做性能测试之前要对Jmeter有一定的了解,本文通过案例,帮大家快速上手Jmeter。如果你已经在用,那么可以忽略。 我用的是Jmeter 5.4.3版本 1、切换语言 打开Jmeter后默认英文,如果想切换成中文可以在 Options->Choose Language->Chinese(Simplified)设置成简体中文。 2、新建请求 首先,我们需要新建一个线程组 接下来的所有操作,都是在这个线程组下进行。 在线程组下新建请求以前,都需要新建三个元件:Cookie管理器,http默认请求、用户自定义变量。可能用不到,但是一般还是加上去。这三个元件都位于:配置元件的子目录下 说明: HTTP Cookie管理器,一般用于存储、修改cookie HTTP请求默认值,用于默认请求地址、端口、协议等 用户定义的变量,用于存储在测试过程中我们需要设置的变量 这里我们仍然使用微信公众号提供的接口进行演示
我们在HTTP请求默认值里写入 说明:https请求端口号为443,http请求端口默认80 然后我们在取样器(Sampler)下新建http请求 然后把我们要填写的接口变量填入: 3、添加查看结果树 填写好以后,我们就可以执行先看一下效果了。可是执行(那个绿色的侧三角)以后,看不到结果。所以我们需要添加一个「查看结果树」的监听器来查看执行结果 点击执行,然后点击查看结果树元件,就可以看到执行结果了 4、添加断言 可以看到,我们上面演示通过了。这就是一个正向的接口测试用例完成了。 添加个断言 我们就断言响应是200,表示通过,其他断言可以选择响应文本,进行业务断言。我们这里只举个例子。 紧接着我们写第二个接口创建标签 接口文档地址: 5、添加JSON提取器/正则表达式提取器 可以看到,他需要传一个access_token,而这个值正是我们上面接口的返回值。也就是说我们要把上面返回值提取出来,所以我们就要在获取access_token接口添加正则表达式提取器或Json提取器(二选一使用)他们都在「后置处理器」中,毕竟是发送完请求以后的处理 我们先用JSON提取器演示 在获取access_token接口下添加JSON提取器 根据接口返回结果 我们这样写JSON提取器 解释: 6、取样器 写好以后,发现也不能确定能不能取到值,我们就在线程组->取样器中添加调试取样器「Debug Sampler」 添加上就行,什么都不用管。 然后执行获取access_token 接口。在查看结果数中查看取样器取值结果 可以看到这个值我们已经取到了 第二种方法 正则表达式提取器 说明:把你要取的字段使用(.*?)替换,这样就能取到那段值了,关于为什么这样写,粗暴的说就是这样就能取到你就这么写就行了,委婉的说就是你可以去看一下正则表达式那部分知识。 然后回到创建标签接口,按文档写参数,利用 通过消息体数据进行传参。执行以后发现通过是通过了,可是中文字符显示的都是问号。解决方式就是在请求内容编码添加utf-8编码 如果还不行,就去修改Jmeter的bin文件夹下的 然后重启Jmeter,就好了。 编码好了,可是又有个问题,就是城市名不能重复。最简单的解决方法就是城市名后面加个变量,比如:赤峰999 7、函数助手 这时候就用到了函数助手 点击以后 这里除了用RandomString,也可以用Random,或者其他你想用的都可以 把复制到的函数粘贴到消息体数据中(注意一下,函数也在双引号里面) 再执行,就看每次都能通过了 8、BeanShell 最后还要说一下BeanShell的应用,这个很重要,只要是软件做不到的,都可以通过BeanShell通过脚本来实现。BeanShell在取样器、前置处理器、后置处理器、断言、定时器、监听器中都有。 8.1)打印 打开选项->日志查看
8.2)获取变量
8.3)设置变量
这个变量只能在当前线程组使用 这里设置的mytest这个变量在用例或其他地方是可以调用的。 8.4)props用于存储Jmeter的全局静态变量 这个变量可以跨线程组使用
比如 8.5)prev用于获取到前面一个取样器返回的信息
8.6)ctx表示上下文 例如打印上下文所有变量 结果: 9、连接数据库,并从数据库取值 在配置元件中选择 然后填写,注意要往Jmeter的lib目录里放一个jar包,叫
网上就能下载 配置好以后,新建JDBC Request 填写 当我们数据库连接并查询成功后,数据库里的用户名密码就是我们接下来测试用例需要写入的数据,我们就需要从数据库取出这个值。 于是我们在取样器中再次新建一个BeanShell取样器 然后把数据库第一行用户名这个值赋值给username变量
说明: 1)result为JDBC Request元件里设置的那个变量名 2)get(0)表示获取数据库第一行 3)get("username")是因为数据库用户表第一行有username这个键 --------------综上-------------- 把上面的内容自己写一遍,至少不会对Jmeter陌生了吧。 |
|
来自: 孟船长 > 《Jmeter性能测试》