51Testing软件测试论坛

标题: 【转】jmeter接口测试 [打印本页]

作者: lsekfe    时间: 2016-11-7 11:53
标题: 【转】jmeter接口测试
一、Jmeter简介
Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,不像loadrunner那样体积大,是一个比较轻量级的测试工具,使用起来非常的简单,深受测试人员的喜爱,但是它的测试报告没有loadrunner的那么详细,看起来没有那么的直观。因为它是java开发的,所以运行的时候必须要安装jdk才可以,jmeter是免安装的,拿到安装包之后直接解压就可以使用了,它也是跨平台的在linux、windows、macos上都可以使用。
二、Jmeter-http接口脚本
1、添加线程组
2、添加http请求
3、在http请求中写入接口url、路径、请求方式、参数
4、添加查看结果树
5、调用接口、查看返回值

Jmeter-http接口脚本添加header:


Jmeter-http接口脚本添加cookie:

在这里添加cookie的时候,不要忘了把域这里写上接口的url,否则是不生效的,还有一种方法也是可以添加cookie,那就是在header里面添加一个key是cookie,值为cookie的值就好了,两种方法都可以


三、Jmeter-webservice脚本
1、在soapui中新建已经soap项目,导入wsdl地址,获取到请求报文、SOAPAction和请求url(在soapui的raw中能找到)


2、打开jmeter新建一个线程组
3、新建一个SOAP/XML-RPC Request

4、把url、soapaction和请求报文写到soaprequest中
5、调用接口、查看返回值

四、Jmeter-参数化
参数化是干嘛的呢,咱们在调用接口的时候,有入参,那参数里面的值如果经常变化的话,就得每次去改了,很麻烦,这时候咱们就把需要经常变的值,改成可以变化的或者是咱们提前设置好的一些值,这样的话,调用的时候就不用每次都改它的值了
1、Jmeter参数化的方式有三种
用户定义的变量——这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
函数生成器——函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
从文件中读取——文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码           都是我们事先注册好的


2、用户定义的变量
value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。


3、函数生成器
函数助手的话,可以按照规则生成一些参数,比如说随机数取当前时间,最常用的就是这两种。

随机数__Random——可以在你指定的一个范围内取随机值

取当前时间__time——如果在有一些需要传时间的情况下可以使用,日期格式是:
                                       yyyy-MM-ddHH:mm:ss
                                       年-月-日-小时:分钟:秒

取唯一id,__UUID——这个就是每次会生成一个随机的uuid,都是唯一的


4、从文件中读取
从文件中读取的话,三个步骤
        1)、读取文件
        2)、取文件内容里面的参数,给它一个名字
        3)、使用值
从文件读取的话,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的


五、Jmeter断言
断言——它是用来检查返回结果对不对的。
用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。


六、Jmeter关联
我们知道断言是从返回结果中检查有没有预期的值,现在有一个问题,有一个购买商品的接口,必须要先登录才能够购买商品, 那么你调用接口的时候怎么知道是否已经登录了,一般这样的都会在调用的时候传一个token的参数,服务端判断token是否过期或者token是否正确,如果正确的话,那就是登录成功了就可以买东西了。
那么这样的话,你就要先获取到token,token是从呢来的呢,肯定是从登录接口返回的,因为要先登录嘛,那这样就得先调用登录接口, 获取到token,然后把获取到的token传给购买商品的这个接口。
关联就是做这个事的,它就是获取到返回的值,然后保存起来,给别的请求使用,或者做一些其他的处理。

=====Jmeter中的关联是通过正则表达式提取器来完成的。




=====通过上面的关联就可以把返回中我们想要的值抓到了,给其他请求使用的时候,直接使用${name}即可,name就是你关联的时候设置的变量名。


七、Jmeter操作mysql
1、Jmeter操作mysql步骤:

1)、导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql

2)、创建数据库连接配置,mysql的url、端口号、账号、密码
3)、写sql,执行sql

4)、查看结果

2、Jmeter数据库驱动列表
数据库
驱动
数据库url
mysql
com.mysql.jdbc.Driver
jdbc:mysql://host:port/{dbname}?allowMultiQueries=true
oracle
org.postgresql.Driver
jdbc:postgresql:{dbname}
PostgreSQL
oracle.jdbc.driver.OracleDriver
jdbcracle:thin:user/pass@//host:port/service
MSSQL
com.microsoft.sqlserver.jdbc.SQLServerDriver
或者
net.sourceforge.jtds.jdbc.Driver
jdbc:



作者: Miss_love    时间: 2016-11-7 13:26
好贴
作者: carolyncao.cc    时间: 2016-11-7 14:54
学习了。
作者: jingzizx    时间: 2016-11-13 23:20

作者: summering    时间: 2017-7-13 22:11
为什么图片都看不了????

作者: hlt150211    时间: 2017-7-21 09:12

作者: 没事121    时间: 2017-7-28 11:41
学习




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2