四、Jmeter的使用实例
1 HTTP信息头管理器的应用
以获取所有学生信息接口(/api/user/all_stu) 为例,右键HTTP请求->添加->配置元件->HTTP信息头管理器, 可通过抓包获取header相应信息 ,输入对应的header值。
2 HTTP cookie管理器的使用实例
以金币充值接口(/api/user/gold_add) 为例,右键HTTP请求->添加->配置元件->HTTP cookie管理器。
3 post 请求中入参为json类型时, 参数为json类型时,一定要在HTTP信息头管理器中设置header配置
右键线程组-->添加-->sampler-->HTTP请求,在body data中输入json类型的参数,如图所示:
4 post请求中上传文件的使用
在HTTP 请求中点击“Flies Upload” tab页, 点击“添加”, 然后通过“浏览”选择需要上传本地的文件。(win10系统中通过浏览选择本地文件运行报错的话,则将文件放到jmeter的bin目录下,在文件名称中直接输入文件名就行)如图所示:
注意: 参数名称必须为"file"。
5 post请求中下载文件的使用
5.1 右键“测试计划”-->“添加”-->“Threads(Users)”-->“线程组”;
5.2 右键“线程组”-->“添加”-->“Sampler”-->“HTTP请求”;
5.3 右键“线程组”-->“添加”-->“Sampler-BeanShell Sampler”(添加beanshell,是为了获取到返回的文件内容,保存到本地一个文件里面)
beanshell代码格式是固定的。:
import java.io.*;
byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回
String file_name = "C:\\Users\\yitai\\Desktop\\ytt.jpg"; //代表存放文件的位置和文件名
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
5.4 右键“线程组”-->“添加”--->“监听器-查看结果树”(添加一个察看结果树,查看接口调用结果)
脚本实例如下:
这里是HTTP请求里的操作
这是Sampler-BeanShell Sampler里的操作内容,直接将代码粘贴过来,修改存放文件路径就行。
最后察看结果树内容如下:
6.接口之间的关联使用
6.1 右键“线程组” --> “添加” --> “Sample” --> “HTTP请求”(修改HTTP请求名称为:HTTP请求--登录)
6.2 右键“HTTP请求--登录” -->“添加”--> “后置处理器 --> "jp@gc - JSON Path Extractor"
6.3 右键“线程组” --> “添加” --> “Sample” --> “HTTP请求”(修改HTTP请求名称为:HTTP请求--充值金币)
6.4 右键“HTTP请求--充值金币” -->“添加”--> “配置元件 --> "HTTP cookie 管理器"
调用金币充值接口,必须先得登录,即需要用到登陆接口(login)的"sign" 值,此时我们可以通过"jp@gc - JSON Path Extractor"来实时获取登录接口的最新sign值
从登录接口的“察看结果树”中可以看出,登陆接口(login)的Response 结构为Json格式, sign 在 login_info 里面一层。
定位到sign值则是:$.login_info.sign
在“JSONPath Expression” 中Destination Variable Name即为设置一个变量名:sign2,可以自己随便写一个,金币充值接口会用到,JSONPath Expression则输入之前定位到的sign:"$.login_info.sign",如图所示:
金币充值接口要用到之前的变量sign2,则需要通过HTTP cookie 管理器来实现,在cookie管理器中,名称输入登录接口中用到的用户名,值则是上面提到的sign2变量:${sign2},域则是服务器的IP或域名。
7.操作数据库的使用
以下是JMeter 驱动数据库列表:
以下以MySQL数据库为例
7.1 创建一个测评计划,将我们需要的数据库驱动包导入:Add directory or jar to classpath 点击“浏览”,选择mysql-connector-java-5.1.28.jar(该文件可自行百度下载)
7.2 右键“线程组”-->“添加”-->“配置元件”-->“JDBC Connection Configuration”
Variable Name自己随便起个名字,下面JDBC Request中会用到,Database URL数据库地址按照上面表格中的数据库url格式输入(dbname为数据库名),JDBC Driver class是驱动程序,将上面表格中对应数据库的驱动复制过来就行,Username则是登录数据库时的用户名,Password是登录数据库时的密码,其他字段保持默认值就行。
7.3 右键“线程组”-->“添加”-->“Sampler”-->“JDBC Request”
若sql中有insert 和select, 则Query Type 需要选择"Callable Statement",
如果是单个的select 或者insert,则Query Type可以选取对应的Select Statement 和Update Statement。
Variable Name输入上面“JDBC Connection Configuration”中的Variable Name:ytt-mysql
7.4 右键“线程组”-->“添加”-->“监听器”-->“察看结果树”
可以在响应数据里察看查询到的数据
五、Jmeter异常解决方法
1.使用jmeter进行测试时,如果返回结果为乱码,则修改jmeter.properties文件中的该字段的值并取消注释,改为utf-8(即:sampleresult.default.encoding=utf-8)
2.入参为json类型,参数为中文乱码时,需修改jmeter.properties文件中的jsyntaxtextarea.font.family的值为:宋体,并取消注释 即:jsyntaxtextarea.font.family=宋体。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理