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

http接口脚本添加cookie

操作webservice脚本

接口参数化
在调用接口时有入参,那参数里面的值如果经常变化的话,就得每次去改了,很麻烦。参数化可以把需要经常变的值,改成可变化的值或者是提前设置好的预定值。
Jmeter参数化的方式有三种
1、用户定义的变量 这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。
2、函数生成器 函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
函数助手的话,可以按照规则生成一些参数,比如说随机数取当前时间,最常用的就是这两种。
A.随机数__Random,可以在你指定的一个范围内取随机值
B.取当前时间__time,如果在有一些需要传时间的情况下可以使用,日期格式是:
C.yyyy-MM-dd HH:mm:ss
D.年-月-日-小时:分钟:秒
E.取唯一id,__UUID,这个就是每次会生成一个随机的uuid,都是唯一的

3、从文件中读取 文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的
1、读取文件
2、取文件内容里面的参数,给它一个名字
3、使用值 从文件读取的话,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的

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

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

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

2、创建数据库连接配置(mysql的url、端口号、账号、密码)
1、添加一个JDBC Connection Configuration
2、配置mysql连接池的名称,后面发sql请求的时候指定连接哪里
3、数据库的url:jdbc:mysql://192.168.1.116:3307/bugfree?allowMultiQueries=true
4、数据库驱动:这里就是指定连接什么类型的数据库,mysql、oracle、SqlServer等等
5、输入账号密码

3、写sql,执行sql
4、查看结果
压力测试场景设置
A.压力测试:分单场景和混合场景,单场景也就是咱们压测单个接口的时候,多场景也就是有业务流程的情况下,比如说一个购物流程,那么这样的场景就是混合场景,就是有多个接口一起来做操作。
1、单场景:一个请求
2、混合场景:多个请求
3、压测时间:一般场景都是运行10-15分钟。如果是做疲劳测试的话,可以压一天或者一周。根据具体的情况来定。
B.压力测试结果查看:查看结果关注的几个指标
1、tps是每秒钟处理的请求数,也就是指服务器的处理能力,tps越高说明服务器处理能力越好
2、响应时间,也就是每个请求的处理时间
3、并发用户数 也就是多少并发
C.查看压测结果:添加聚合报告

D.添加负载机
我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机。
(1).在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。
(2).Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server。
(3).在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties。
(4).添加压力机的时候,在配置文件里面找到remote_hosts添加ip。
(5).重启jmeter,即可看到远程压力机。

浙公网安备 33010602011771号