一.shell脚本续
1.shell脚本函数
#1:定义格式
函数名(){代码 }
调用格式
函数名
注意点:必须先定义一个函数,然后再调用它
1.2:函数中的参数
使用$n来接收数据
1.3:函数中的返回值
Shell中函数中默认存在返回值
查看函数的返回值$?
注意点:
如果没有代码错误默认返回值为0
有代码错误返回1
查看返回值内容:$?
代码有错误:
二.jmeter组件
2.0 为什么要进行性能测试?
(1)评估当前系统的能力
(2)寻找性能瓶颈,优化系统性能
(3)评估软件是否满足未来的需要
(4)招聘需要
2.1 什么是性能
时间:系统处理用户请求的响应时间
资源:系统运行过程中,系统资源的消耗情况
2.2. 性能测试是什么
广义定义
基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足要求性能指标关注点:时间性能、空间性能性能测试与页面无关
狭义定义
指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
功能和性能测试
不同
功能测试验证系统的功能需求规格,聚焦功能。
性能测试验证系统的业务性需求场景,聚焦时间和资源。
关系
一般项目中,先功能测试通过后,后进行性能测试。
2.3 性能测试的分类
基准测试
狭义:单用户测试
广义:建立基准线,当系统软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
2.4 负载测试
概念
通过逐步增加系统负载,确定在满足性能指标的情况下,找出系统所能承受最大负载量的测试。
作用
系统最大负载量达到用户要求时,系统才能正式上线使用。
注意
通过负载测试,可以确定系统的最大负载量和极限负载量
系统对外宣称的最大负载量
负载测试的时间一般为1-2小时
2.5 稳定性测试
概念:在服务器稳定运行(用户正常业务负载下)的情况进行长时间测试(1天-一周等),并最终保证服务器能满足线上业务需求。
系统在用户需求的业务负载下运行达到规定的时间时,系统才能正式上线使用。
2.6 压力测试
概念:在强负载下的测试,查看系统在峰值下是否功能隐患、系统是否具有良好的容错能力和可恢复的能力。
测试场景
高负载下的长时间稳定性压力测试 (如:B-C区间内进行24/3*24小时长时间测试)
极限负载下的破坏性压力测试(如:C-D区间内进行测试)
2.7并发测试
概念:在极短时间内,发送多个请求,来验证服务器对并发的处理能力。
应用场景
特定的活动场景:抢红包、秒杀、抢购等。
与负载测试对比:
负载测试:主要目的是测试高负载情况下,对系统资源的消耗,是否会耗尽的问题(双11活动)
并发测试:主要目的是测试极短时间内,并发请求时,系统资源争抢的问题(抢红包、秒杀)
2.8 性能测试的指标
2.8.1 响应时间
指从客户端发起请求开始,到客户端接收到结果的总时间
包括:服务器处理时间 + 网络传输时间
2.8.2 并发用户数
某一时刻同时向服务器发送请求的用户数
2.8.3 吞吐量(Throughout)
1.概念:单位时间内处理客户端的请求数量,直接体现软件系统能能承载能力。
吞吐量单位分类
2.9 QPS
QPS(Query Per Second)每秒查询数,即控制服务器每秒处理的指定请求的数量。
TPS
TPS(Transaction Per Second)每秒事务数,即控制服务器每秒处理事务请求的数量。
如:支付请求事务=查询用户余额请求+校验支付安全请求+发送支付请求
每秒处理查询用户余额15请求,每秒处理校验支付安全15个请求,每秒处理发送支付15个请求
支付tsp为15
2.10 点击数
所有的页面元素(如:图片、链接、框架等)的请求总数量
注意:
点击数是请求数,不是页面上的一次点击
2.11 错误率
指系统在负载情况下,失败业务的概率
注意:
错误率是性能指标,是高负载下的失败业务的概率
-随机bug是功能bug,先解决随机bug才能进行性能测试
2.12 资源利用率
概念:系统各种资源的使用情况,率=资源使用量/总资源可用量x100%
常见资源指标
CPU使用率:不高于75%-85%
内存大小使用率:不高于80%
磁盘IO(速率):不高于90%
网路(速率):不高于80%