一、Jmeter简介
1、轻量级测试工具
2、运行的时候必须安装jdk
3、免安装,安装包解压即可使用
4、跨平台在Linux、windows、macos均可使用
二、Jmeter Http请求常用操作
参照上篇初学postman中的常用操作示例,在Jmeter中制作脚本
1、如何创建http接口脚本
(1) 添加线程组
(2) 添加http请求
(3) 在http请求中写入接口url、路径、请求方式、参数
(4) 添加查看结果树
(5) 调用接口、查看返回值
2、get请求
get请求的参数不是直接拼在url里,而是写在Parameters里。
3、post请求
在Parameters中填入参数即可。
4、post请求,json入参
将json串填入Body Data中。
5、文件上传
选择Files Upload来做文件上传,参数名称填file与接口文档保持一致,编码类型选择utf-8避免乱码。
6、文件下载
添加一个http请求:右键线程组,添加-Sampler-HTTP请求
写好http请求中的url和路径
添加beanshell,获取到返回的文件内容,保存到一个文件里面。右键线程组,添加-Sampler-BeanShell Sampler
beanshell是下载脚本,下载的话,有一步是要把文件保存到咱们本地的,这个jmeter没有现成的东西可以用,就得自己写beanshell来实现,把文件保存到本地。
当然你如果要写beanshell的话,你得会它的语法,它就是java写的。不过也不用愁不会写java咋整,这个保存文件的是死格式就这么写,记住就行了,需要下载的时候复制过去就行。
1 import java.io.*; 2 3 4 byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回 5 6 String file_name = "C:\\Users\\bjniuhanyang\\Desktop\\BaiDu.jpg"; //代表存放文件的位置和文件名 7 8 File file = new File(file_name); 9 10 FileOutputStream out = new FileOutputStream(file); 11 12 out.write(result); 13 14 out.close();
查看结果
7、http接口脚本添加header
右键点击http请求,添加配置元件,选择HTTP信息头管理器,添加header。
8、http接口脚本添加Cookie
右键点击http请求,添加配置元件,选择HTTP Cookie管理器,添加Cookier。
三、Jmeter WebService请求常用操作
1、如何创建webservice脚本
可以百度搜索“天气预报WebService”找到一个天气预报的wsdl地址,做简单的联系
(1) 在soapui中新建已经soap项目,导入wsdl地址,获取到请求报文、SOAPAction和请求url(在soapui的raw中能找到)
(2) 打开jmeter新建一个线程组
(3) 新建一个SOAP/XML-RPC Request
(4) 把url、soapaction和请求报文写到soaprequest中
(5) 调用接口、查看返回值
2、若导入wsdl文件或者url报错
在project测试中,如果引入wsdl报如下的错误:
Error loading [http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl]: org.apache.xmlbeans.XmlException: java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0xb1 implies a length of more than 4 bytes
解决方案:关闭程序并找到SoapUI的安装位置中的SoapUI-4.6.4.vmoptions这个文件,在末尾加入
-Dfile.encoding=UTF8 可解决
四、Jmeter中的乱码问题解决
1、 使用Jmeter进行测试,返回结果乱码
解决方案:
在安装目录/bin/ jmeter.properties中将 sampleresult.default.encoding=ISO-8859-1
改为 sampleresult.default.encoding=utf-8
2、Jmeter编写post脚本中Body Data输入中文时乱码
这不是乱码,而是因在 3.0 版本对Body Data 进行了优化,导致默认字体(Consolas)不支持汉字显示
解决方案:
修改配置文件{JMETER_HOME}\bin\jmeter.properties 中的默认显示字体 #jsyntaxtextarea.font.family=Hack
改为系统支持的中文字体(可进入系统目录【控制面板\所有控制面板项\字体】查看)即可。
jsyntaxtextarea.font.family=宋体