🍅 视频学习:文末有免费的配套视频可观看
🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快
上一篇我给大家讲了jmeter的基本介绍跟参数化和jmeter脚本及jmeter断言,今天让我们继续往下看,学习一下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 | jdbc:oracle:thin:user/pass@//host:port/service |
MSSQL | com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver | jdbc:sqlserver://IP:1433;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library" |
3、Jmeter配置mysql连接
1)、添加一个JDBC Connection Configuration
2)配置mysql连接池的名称,后面发sql请求的时候指定连接哪里
3)数据库的url:jdbc:mysql://192.168.1.116:3307/bugfree?
allowMultiQueries=true
4)数据库驱动:这里就是指定连接什么类型的数据库,mysql、oracle、SqlServer等等
5)账号密码
三、Jmeter操作mongodb
1、Jmeter操作mongodb步骤
1)添加一个MongoDB Source Config,配置mongodb连接信息,指定ip和数据源
2)添加一个mongodb的请求脚本,指定数据源
3)写查询语句
4)查看结果
2、Mongodb操作语句
show dbs;查看所有数据库
use db;选择一个数据库
show collections;查看所有集合,也就是表
db.collection.find();#查询所有数据
db.collection.find({"name":"mongodb"});#查询指定的条件
db.collection.insert({"name":"mongodb","age":18});#插入数据
db.collection.update({“name”:“mongodb”},{$set:{“createtime”:“20150810”}});#更新数据
db.besttest.remove({“name”:“mongodb”});#删除指定数据
四、Jmeter压力测试
做压力测试也就是多少用户一起去操作,也就是设置多少并发,运行多久。
1、压力测试场景设置
一般我们在做压力测试的时候,分单场景和混合场景,单场景也就是咱们压测单个接口的时候,多场景也就是有业务流程的情况下,比如说一个购物流程,那么这样的场景就是混合场景,就是有多个接口一起来做操作。
1)单场景,一个请求就可以了
2)混合场景,多个请求
3)压测时间,一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或者一周,根据具体的情况来定
2、压力测试数据准备
在做压测的时候,数据量少和数据量大的情况下,测试的结果是不一样的,所以,我们在设计场景的时候是要考虑到这种情况的,要测试数据库中数据量大和数据量小的情况,如果是要测试数据量大的情况下,就要造数据了,造数据可以使用jmeter,操作数据库来造数据,也可以使用python连接数据库,批量的造数据。
3、压力测试结果查看
查看结果关注的几个指标
1)tps是每秒钟处理的请求数,也就是指服务器的处理能力,tps越高说明服务器处理能力越好
2)响应时间,也就是每个请求的处理时间
3)并发用户数 也就是多少并发
五、Linux下运行jmeter压力测试
我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。
sh jmeter.sh -n –t a.jmx -l res.jtl
-n 代表以没有图形化界面启动
-t 代表后面是测试脚本
a.jmx 也就是我们做好的jmeter脚本
-l 代表测试结果
res.jtl 就是测试结果文件
查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了
我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢,首先要在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。
1)、Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server
2)、然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了后重启jmeter就可
3)、在配置文件里面添加之后,重启jmeter,在运行的时候,就可以看到压力机的ip了,可以选择他来运行这个脚本,全部运行的话,也就是所有压力机上的全部都启动,就选择远程全部启动,就所有的压力机就都运行了。
同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助!【公众号:互联网杂货铺】免费领取软件测试资料。
2024全网最牛,字节大佬花了一周讲完的自动化测试全套教程,从零开始教你成为年薪百万测开工程师