一些理论:
负载和压力的区别:
负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。
压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响
TPS和QPS的区别:
tps可以理解为是每秒对事务的处理的能力 qps是每秒对服务器的查询能力
性能测试:
性能测试包含web端和app端测试
App端的性能指标:
Cpu内存 流量 电量 启动时间 帧率
cpu <80%内存 <80%
电量的损耗:
流量的损耗:
web端的性能指标:
https://www.cnblogs.com/flyr/p/5509451.html (web端的性能指标详情链接)
响应时间(客户端向服务端的请求时间,服务端对数据库的请求时间,服务端将结果展现到页面的时间)
响应时间 2 5 8原则
(258原则详情链接)
吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.
TPS:每秒处理事务能力
并发数: 单用户的多次操作
多用户的单次操作
点击率: 每秒钟用户向WEB服务器提 交的HTTP请求数.
资源使用率:cpu占用率 <80% 内存 <80% 磁盘 io <40 网络带宽 <30%
app端的性能指标
线程与进程的区别:
一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
测试数据的来源:
A.复用开发的原有数据 b.复用线上的真实数据c.直接使用线上数据 d.测试人员手动添加
E:产品或者是运营提供数据
下载jmenet
官网:https://jmeter.apache.org/
jmenet版本要和jdk版本相匹配 不然会导致安装失败
下载完成后解压文件到自定义文件夹
需要配置jmeter环境变量
1 新增新增JMETER_HOME系统变量
2 编辑CLASSPATH变量,加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;
完成以上步骤就可以双击Jmeter中bin目录下面的jmeter.bat文件即可打开Jmeter了
出现下面图片代表安装成功
jmeter使用
切换成中文
创建一个线程组
设置http请求
接口地址:http://apis.juhe.cn/simpleWeather/query
返回格式:json
请求方式:http get/post
请求示例:http://apis.juhe.cn/simpleWeather/query?city=%E8%8B%8F%E5%B7%9E&key=
接口备注:通过城市名称或城市ID查询天气预报情况\
添加http请求
添加结果树
运行
是否保存记录
很明显我请求失败了
修改端口号为80 请求成功
类似于筛查功能
添加聚合报告
可以看见执行的详细信息(在线程组修改线程数为300(压力测试) 时间为2 循环次数为1)
Jmetere的断言
添加断言如果返回值与断言相同成功否则失败
Jmeter的参数化关联 都是用${变量名}
一个变量对应一个变量值
添加一条信息
一个变量对应多个变量值
使用csv文件方式
Jmeter的对数据库链接(对数据库进行压力测试)
添加mysql的jar包
在线程组添加
设置线程数然后添加结果数进行测试
web端录制
首先要有badboy 如果没有可以自行去官网悄悄下载一个
有了badboy之后打开它点击上方工具栏的小红点进行录制
在badboy中输入要测试的web项目的网址(例如 百度 w w w.baidu.com)
接下来就开始点击需要测试的地方 任性一点喜欢哪里点哪里也可以
点够了我们就停止录制
生成.jmx文件
在jmeter中导入刚刚生成的.jmx文件
可以查看接口请求的数据,也可以对其进行压力,性能测试(不知道怎么测试可以看一看之前的内容)
添加结果树,聚合报告(不知道怎么添加可以看一看之前的内容)
app端录制
模拟器长按wifi点击修改网络查看(设置)端口号和ip
点击启动后开始录制
对移动端设备进行操作
查看结果
可以查看接口请求的数据,也可以对其进行压力,性能测试(不知道怎么测试可以看一看之前的内容)
添加结果树,聚合报告(不知道怎么添加可以看一看之前的内容)
正则提取器
添加http请求
然后我们要创建一个正则表达式
一些常用的正则表达
$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
$n$:表示取第n个
():括起来的部分就是要提取的
. :匹配任何字符
+ :一次或者多次
* :所有字符串
? :在找到第一个匹配项后停止
模板:表示使用提取到的第几个值
匹配数字(0表示随机): 0表示随机,1代表全部取值
缺省值:如果正则表达式没有找到值,则使用此缺省值
然后添加结果树,点击运行就可以查看详细的数据
可以查看接口请求的数据,也可以对其进行压力,性能测试(不知道怎么测试可以看一看之前的内容)
添加结果树,聚合报告(不知道怎么添加可以看一看之前的内容)
对应的正则规则:
赠送一道题
Jmeter的正则提取器面试题:
在一个线程组中,B请求需要使用A请求返回的数据,也就是常说的关联,将上一个请求的响应结果作为下一个请求的参数,则需要对A请求的响应报文使用后置处理器,其中最方便最常用的就是正则表达式提取器了。