1、jmeter测试HTTP接口
1.1 添加线程
首先通过测试计划右键添加一个线程组。如下图
1.2 添加HTTP请求
添加成功之后,右键线程组添加一个http请求。如下图
现在来看下HTTP请求的组成。HTTP请求分为两大块Basic和Advance,如下图
具体功能就不做多介绍。有兴趣的可以去百度了解。这里,我以百度为例,发起一个http请求。如下图
1.协议:通常一个http请求都会有相对应的协议,如HTTP,HTTPS等。这里除非有特殊要求,一般可以不填
2.服务器名称或ip: 一个HTTP请求的ip或者域名,如www.baidu.com,127.0.0.1
3.端口:每个服务器都有相对应的的端口。默认是80
4.方法:HTTP的请求方式,一般我们只关注get和post请求
5.路径:HTTP请求URL中接口的地址,一般是域名和端口之后的路径。
6.Content encoding:编程格式,当参数带有中文字符时,可以设置为utf8,防止乱码
7.Parameters:以键值对方法添加的参数。key:value
8.Body Data:以json或者xml格式的参数,通常是post请求
9.File Upload:文件上传。有兴趣的可以百度了解
1.3 发起HTTP请求
添加HTTP请求后,输入各项数据,这时候我需要右键线程组添加一个察看结果树来观察HTTP请求的结果。如下图
点击一个绿色三角形的图形,发起请求,点击察看结果树,观察结果。如下图
这里返回的是一个HTML格式的页面。我们可以通过Text哪里切换不同格式的结果。请求,可以帮助我们察看输入的url和参数是否正确。响应结果,可以直观的看到我们这次请求是否成功,有没有什么错误。
现在,一个HTTP请求,就已经成功的完成了。接下来,说一下关于soap接口的测试。
2、jmeter测试webservice接口
webservice接口本质上其实就是一个HTTP的post请求。只不过是基于http进行一次封装。在2.*的版本里面有个Soap/XML的sample。如下图
但是在jmeter3.*以后,这个请求被取消了。那我们应该怎么办呢,在上面说过,webservice请求实际就是一个http的post请求。不过,需要一些特殊的设置。
这里以天气预报的webservice接口为例。在通过jmeter测试webservice接口之前,需要用到一个工具soapUI。打开soapUI,如下图。
点击SOAP,输入天气预报的接口http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,点击ok,如下图
一个webservice接口支持很多请求,这里以城市为例。点击getSupportCity下面的request1。对湖南发起一个请求,如下图
切记:这里一定要选择SOAP12!!!不然后续jmeter中出现问题,你还检查不出来。
点击XML格式,将数据输入到对应的http请求里面。
因为webservice是post请求,并且参数是xml格式的。所以要选择post请求Body Data的存放数据。输入参数和域名,路径,并且勾选Browser-compatible headers,编码输入UTF-8。如下图
添加一个信息头管理器,如下图
添加webservice接口的头部信息。(soapUI中xml格式可找到)如下图
最后添加一个察看结果树,查看结果。如下图
好了,通过jmeter完成soap接口的请求,到此为止就已经成功的完成了。这里只是科普,不推荐这种方法,建议soapUI测试soap接口。最后说一下,我们比较常用的jdbc请求(也就是数据库操作)
1.3、jmeter对数据库(jdbc)发进行操作
新建一个线程组,并添加一个配置元件JDBC Connection Configuration
输入对应的Databass URL和用户名,密码。
JDBC Driver class根据对应数据库类型来输入,我们这里使用的是mysql,所以输入com.mysql.jdbc.Driver。
记住变量名,后续你会用得着的。
注意!!! jmeter连接数据库是需要一个插件jar包的。可以通过测试计划添加依赖包,导入进来。如下图
导入jar包之后,新建一个JDBC Request。输入变量名,与之前JDBC配置信息里面的变量名保持一致。Query Type要进行的数据库操作类型。如下图
最后添加一个察看结果树。发起jdbc请求,查看结果。如下图
到此三种不同的请求就全部完成了。坑越入越深,人越走越远。