Jmeter的使用简介及实例(下)

发表于:2022-9-28 09:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搁浅小夕    来源:博客园

  四、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),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号