性能测试 --模拟多个用户进行接口测试,jmeter 提供聚合报告, jmeter的执行是从上到下执行的,所以测试计划的流程要注意。
一个简单的接口和断言:

加断言:


当接口返回的数据有很多很多时,断言该怎么写呢? 比如说一个接口返回书城页面,书城页面有很多书而不是具体的某本书,断言怎么写?
接口的数据从sql里来,所以expect value 直接从sql里来,断言的expect value 让介么特荣誉数据库联系,没请求一次,先获取数据库的数据。
jmeter数据库的链接和配置:


测试计划加一个jar包

线程组add jdbc request来请求数据库




expect value设置数据库读取的数据
将数据库返回的数据存到变量里面,断言验证变量内容:



变量没有被赋值,排查

debug sample,来debug一下数据


变量名加个_1, 强行赋值的variable name, 一个sql 语句在执行之前不知道会返回几个数据,有可能返回1条数据,也有可能返回 > 1条数据。jmeter 变量名的命名规则, 变量名(自己定义的变量名)_顺序递增的数字。 比如 ids_1, ids_2.....ids_100 (一百条数据等)
所以断言的变量名改一下:

随机抽取一本书进行测试(随机抽样检查):



多随机数断言校验:
比如查询10本书出来。

加一个逻辑控制器 - 循环控制器:

请求参数也要进行循环:


循环控制器加个计数器:


变量和变量的关系,如果要用到两个变量的拼接,就要用到V 函数。 ${__V(ids_${n})}
工具下面



测试片段: 就是对于用例的描述,模块化封装
比如说登录测试片段,吧登录需要的测试请求,包在测试片段里,为什么不在线程组里面添加? 是因为线程组的目的是负责执行,没办法去复用。可以将某个片段模块化的导出来供别的人使用。

其他人使用的时候,在线程组里面添加一个include控制器,吧别人的测试片段加载进来。可以复用别人的测试片段


接口测试中的环境变量管理(配置原件 - 用户定义的变量),讲公共数据,以变量的形式统一维护起来。


线程组添加模块控制器:

执行某个模块的片段。比如说执行一个订单的测试片段,或者执行登录模块。所以登录的测试片段首先加在线程组前面,线程组在添加一个模块控制器去执行这个登录的测试片段。

加密接口:通过算法,对数据进行加密 - 密文 (请求的数据和返回的数据都进行加密处理)
普通接口:

https:

https接口为什么不够安全:
-
自签名证书的信任问题:自签名证书未经证书颁发机构(CA)审核,浏览器和客户端无法自动信任。这可能导致中间人攻击(MITM),攻击者可以伪造自签名证书,窃取数据。此外,域名或IP不匹配也会导致浏览器持续提示“不安全”,误导用户忽略真实风险1。
-
证书吊销机制缺失:自签名证书无法被吊销,若私钥泄露,无法通过证书吊销列表(CRL)或OCSP协议及时失效证书。相比之下,可信证书可以通过API快速吊销被破解的证书1。
-
安全配置易疏忽:开发者可能使用弱加密算法(如SHA-1、RSA-1024)或未禁用过时协议(如SSLv3、TLS 1.0),导致安全性降低。此外,忽略证书链完整性也会导致浏览器提示“证书链不完整”
加密接口: 所以端对端的加密方式才是最安全的方式,不经过第三方,直接对发起请求和数据进行加密

jmeter 利用第三方网站处理加密接口:
在线工具软件网址: 在线工具大全





添加请求头管理

把加密后的user和psw 存在json取样器中

加密接口直接参数用json取样器的参数值

这种方式只适用于接口数少的,接口数多或者请求次数错了,第三方加密工具需要手工验证之后才会处理。
所以,需要自己实现。前置处理器 - beanshell.postprocessor 后置处理器,用写脚本的方式完成加密解密。加密解密的方式需要问接口开发(aes加密或者MD5等),beanshell 是用java 脚本的片段。片段没法调试,需要在idea里面调试好之后在用这边。


OS 进程取样器,用来加密用户名密码:用python的脚本来实现加密解密,执行python脚本



添加个提取器(正则表达提取器)


python aes加密解密:

同一个接口,正反向边界值等等的数据测试,jmeter支持csv文件,测试数据按照规则,放在csv文件里面,


cvs数据文件设置: jmeter去动态读取csv文件内容, 吧数据动态定义为变量


逻辑处理器-循环控制器,用来反复执行,循环发起多次登录,要不然只执行csv第一行。注意循环体,有上下级关系,控制反复执行的范围

Jmeter中的断言机制:
很多断言:

大多数用json断言。
添加一个json断言。格式:

接口测试中的token管理与接口依赖:
后置处理器 - json提取器: 把json返回的数据提取出来, 比如说,登录之后的token提取出来,变成变量




jmeter生成测试报告:jmeter.bat 连输入命令

浙公网安备 33010602011771号