目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、测试策略
1)先进行混合业务功能场景的测试,在考虑进行测试单业务功能场景的测试
2)负载测试->压力测试->稳定性测试->强度测试
注意:如果测试稳定性,时间建议至少8小时;
3)逐步加压
比如开始前5分钟,20个用户,然后每隔5分钟,增加20个用户。
好处:不仅比较真实的模拟现实环境,而且在性能指标比较模糊,且不知道服务器处理能力的情况下,可以帮我们确定一个大致基准,因为通常情况下,随着用户数的不断增加,服务器压力也会随着增加。
如果服务器不够强大,那么就会出现不能及时处理请求、处理请求失败的情况下,对应的运行结果图形中,运行曲线也会出现对应的形态。
比如从原本程一条稳定直线的情况,到突然极限下降、开始上下波动等,通过分析我们就能得出服务器大致处理能力,供后续测试参考。
4)单点并发
比如使用集合点,单独针对某个环节的并发测试,通常是针对某个环节的性能调优时使用。
负载测试:
保证系统能正常运行(通常是满足某些系统性能指标)的前提下,让被测对象承担不同的工作量,以评估被测对象的最大处理能力及存在缺陷而进行的测试
压力测试:
不保证系统能否正常运行的前提下,让被测对象承担不同工作量,以评估被测对象能提供的最大处理能力及存在缺陷而进行的测试
稳定性测试:
测试系统的长期稳定运行的能力。同疲劳强度测试的区别是,稳定性测试的压力强度较小,一般趋向于客户现场日常状态下的压力强度,当然在通过时间不能保证稳定性的状态下,需要加大压力强度来测试,此时的压力强度则会高于正常值。
强度测试:
通常模拟系统在较差、异常资源配置下运行,如人为降低系统工作环境所需要的资源,如网络带宽,系统内存,数据锁等等,以评估被测对象在资源不足的情况下的工作状态
注意:疲劳强度测试是一类特殊的强度测试,主要测试系统长时间运行后的性能表现,例如7x24小时的压力测试。
2、工具选取
1)协议分析
一般性能测试工具都是基于协议开发的,所以先要明确应用使用的协议
2)工具选取
类型:
开源工具、收费工具、自研工具
分析工具:
理解工具实现原理
采用用异步还是同步
常识:
同步请求:发出一个调用请求,在没有得到结果之前,该调用就不返回。
异步请求:发出一个调用请求,在没有得到请求结果之前,该调用可立即返回。该调用请求的处理者在处理完成后通过状态、通知和回调等来通知调用者。
使用长连接还是短连接
3、软件配置
1)操作系统
内核版本、32 or 64位?
2)应用版本
应用版本要和线上保持一致,特别是中间件、组件等的版本,因为不同版本,其性能可能不一样
3)参数配置
负载均衡、反向代理参数配置;
Web服务器参数配置;
数据库服务器参数配置;
4、网络分析
1)网络路由
通常为了排除网络型瓶颈,通常建议在局域网下进行测试。
通常,这里我的分析思路是这样的:
检查hosts文件的配置
从终端压测机(负载生成机)开始,到请求目的服务器器,机器的hosts文件配置
通常,hosts文件位于如下:
Windows:C:\Windows\System32\drivers\etc\hosts
Unix/Linux:/etc/hosts
小常识:
通常域名访问站点,首先要通过DNS域名服务器把网络域名(形如www.xxx.com)解析成XXX.XXX.XXX.XXX的IP地址,然后继续后续访问。
hosts存放了域名和ip地址的映射关系,如下
使用hosts可以加快域名解析,在进行DNS请求以前,系统会先检查自己的hosts文件中是否有这个地址映射关系,如果有则把域名解析为映射的IP地址,不请求网络上的DNS服务器,如果没有再向已知的DNS服务器提出域名解析。也就是说hosts的请求级别比DNS高,可加快域名解析。
检查DNS配置:
不同DNS,其速度和准确率是不一样的,比如114.114.114.114速度远比8.8.8.8快,如果有用到DNS(特别是压测机),需要考虑下是否适当
确保路由正确设置
网络带宽:
如果没条件在局域网下测试,可能需要估算所需大致带宽。
如果测试时是基于UI层操作的操作,那么得估算页面平均大小,这个可以通过浏览器自带工具查看打开单个页面服务器返回的请求数据大小。如果是测试时是基于接口层的请求测试,可以通过工具查看服务器响应数据大小。
然后根据采集的页面PV峰值、请求数峰值进行计算。
假设在PV峰值、请求数峰值= 1000,峰值时段:8:00 - 12:00,平均页面、请求大小200k
带宽= 1000 x 80% / (20% x 4 x 3600s) x 200KB x /1024 x 8bit ,单位MBps
注意:这里涉及到浏览器缓存等因素,估值可能不准,大致估算。
5、硬件配置
CPU:
型号,频率,核数
内存
磁盘:
不同磁盘类型,读写速率不一样
网卡:
不同网卡,其传输速率也不一样
注意:硬件配置最好和生产环境的配置保持一致
6、性能监控
略
注意:
1)这里监控不仅仅是服务器自身性能指标监控,如cpu,还包括事务耗时监控等
2)需要记录测试前各个性能指标数据,方便后续测试对比
7、实施测试
略
8、结果分析
如果是性能调优,还需同上一个版本的性能测试结果对比
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
不要惧怕失败的阴影,勇敢面对挑战的光芒,只要你拥有坚定的信念和不屈的努力,就能书写出属于自己的辉煌人生篇章。
只有脚踏实地,勇往直前,才能超越自我、创造奇迹;只有心怀信念,坚持不懈,才能书写辉煌人生的华美篇章。
追随内心的梦想,用行动诠释人生;勇于挑战自我,敢于拼搏奋斗;只要坚定信念,不断前进,成功就在不远处等待着你的到来。