1.流程
性能需求分析确认——制定测试计划——编写测试用例——搭建测试环境——构造测试数据——脚本开发——执行测试——结果分析/测试报告——性能调优
具体流程为:
测试计划->测试分析->测试设计->测试实施->测试执行->测试总结报告
2、测试策略:
性能验收测试:基于需求分析测试策略
性能评估测试:基于经验与探索性醒测试策略
3、性能测试分析:分析解决测试中什么的问题
(1).谁用系统:相关方分析
(2).哪个时间段集中操作什么业务
(3)哪些是相关方最关注,并且存在大并发访问的业务
4.测试准备(核心)
关键场景手工跑,自己搭建测试环境,系统通讯协议抓包复现(fiddler,wireshark,tcpdump)
5.测试场景设计
确定哪些业务放到一起测试,各个业务的交易占比,场景是从生产业务模型转化而来的,按照业务模型来设计测试场景,可以保证测试模拟更贴近生产实际的交易场景
典型的场景:正常交易日业务模型,峰值交易日业务模型,特殊交易日业务模型
6.性能测试环境搭建
一.如何缩小测试赛环境与生产环境的差别:
(1)网络延迟注入:1000支付请求,A(web服务器)——》B(模拟器,模拟支付宝)
注:延迟在模拟器上加
延迟的命令:
(1).网卡增加1000ms时延
tc qdisc add dev <网卡名称> root netem delay 1000ms(2).验证延迟
ping <ip地址>(3).删除刚才增加的延迟
tc qdisc del dev <网卡名称> root netem delay 1000ma可测试性,
7.软件架构概述
(1)单体架构
单体架构的应用比较容易部署、测试, 在项目的初期,单体应用可以很好地运行。然而,随着需求的不断增加, 越来越多的人加入开发团队,代码库也在飞速地膨胀。慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。
client——server——DB
(2)分布式架构
好处:
- (1)降低了耦合度:把模块拆分,使用接口通信,降低模块之间的耦合度
- (2)责任清晰:把项目拆分成若干个子项目,不同的团队负责不同的子项目
- (3)扩展方便:增加功能时只需要再增加一个子项目,调用其他系统的接口就可以
- (4)部署方便:可以灵活的进行分布式部署
(3)微服务架构
好处:
A. 易于开发和维护: 一个微服务只会关注一个特定的业务功能,所以它业务清晰、代码量较少。 开发和维护单个微服务相对简单。而整个应用是由若干个微服务构建而成的,所以整个应用也会被维持在一个可控状态。
B. 单个微服务启动较快: 单个微服务代码量较少, 所以启动会比较快。
C. 局部修改容易部署: 单体应用只要有修改,就得重新部署整个应用,微服务解决了这样的问题。 一般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
D. 技术栈不受限:在微服务架构中,可以结合项目业务及团队的特点,合理地选择技术栈。例如某些服务可使用关系型数据库MySQL;某些微服务有图形计算的需求,可以使用Neo4j
8、内存消耗型
涉及到大量的缓存,比如:系统了memcached作为缓存容器
9、cpu消耗型
涉及大量的计算,比如:系统实时计算股票交易数据,10万用户同时登录系统
10.磁盘IO消耗型
导入100万数据到数据库中
10、产生负载的工具
jmeter,LoadRunner
12内存泄露
内存泄露会随着时间的推移,越来越明显
13.c++与python相比,python不需要考虑内存使用,c++与c要求程序员自己进行内存管理
任何语言都要考虑的问题:网络延迟, 连通(性), 批处理
14.应该进行风险识别和分析的阶段——测试计划
15.性能测试报告中,应该包含哪些内容
性能测试缺陷数据
性能测试用例执行数据
系统性能评估总结
经验与教训
16.敏捷模型/方法
(1)XP极限编程
(2)Scrum
17、性能瓶颈点
双十一秒送
晚上0点,后台定时作业执行对系统的影响
用户通过手机号注册,收到短信验证码的速度
注:导航到第三方的网站的,一般不需要开展性能测试
18.SCRUM流程中规定的会议
A. 冲刺计划会
B. 每日站会
C. 冲刺回顾会
19.敏捷中通常使用看板来使得工作认为可视化,看板的内容包括:
A. 待办列表
B. 正在开发的
C. 等待测试的
D. 已经完成的