今天开始了JMeter,纯理论的干了一天,收获还是有的,本来想把下面的内容揉和进,另一片主要阐述JMeter的essasy中,不过个人觉得,单独提出来更有可能会帮助到需要的小伙伴们,其间如有不恰当之处,还请指正!!enjoy it!
一、软件测试和软件工程师的关系及向相关业务关系,内容划分,责任归属
项目竞标:售前工程师 负责标书、演讲、谈判
获得项目的开发权、测试权, ”投其所好“ 互动、共鸣是拿下项目的最高境界
1)需求分析:需求分析师、产品经理、项目经理
《需求规格说明书》作为后续所有流程的重要依据!
根据和客户的交流,凭借项目经验总结出需求,编写文档;
功能性——功能需求、非功能性——性能需求、安全需求... 性能出于功能,并高于功能!
<1> 功能需求:业务流程、行业规则、行业规范或标准
正确和错误的评判依据
<2> 性能需求:多、快、好、省
面试题:列举出常见的性能测试指标?(重要)
多:多用户、数据量大(大数据)、任务多、并发量大
注册用户数:某公司注册了10000个账号,存数据库中
在线用户数:多少人登录并使用系统 比如1000人
并发用户数:在几乎同一时刻访问系统某功能的用户数 80个
点击率:Hits per Second
每秒来自用户的请求数,形容压力的大小
吞吐量:Throughput
服务器一定时间内处理的数据包的量(字节Byte)
大数据量测试:模拟系统积累海量数据时的性能表现
数据库的优化技巧:索引 index(B+树)
根据表中的某些列建立索引,能够大大提高查询效率
不加索引:逐行扫描,效率低
加了索引:精确定位,效率高
快:请求响应时间
平均事务响应时间 ART、ATRT 大家快才是真的快!
Average Transaction Response Time
业内原则:258原则
2秒内,可以接受;5秒左右,可以忍受;超过8秒,难以忍受
请求响应时间 = 客户端时间 + 网络时间 + 服务器时间
服务器时间= Web服务器时间 + 数据库服务器时间
客户端浏览器 B ——网络—— 服务器 Server
(Web服务器 + 数据库服务器)
登录请求 -----------> 接口程序 SQL -------> 查询 select
成功响应 <---------- 继续处理 <-------- 结果
经验:根据大量项目,许多(60%以上)性能问题出现在数据库层面!
好:系统稳定性好(路遥知马力)
7*24 多用户、多任务、长时间运行 比较稳定
省:节省系统资源,由于压力增大,会出现系统资源短缺问题,容易成为系统的性能瓶颈!
功能的问题:bug 缺陷 性能的问题:瓶颈 引起性能不良的地方
安全的问题:漏洞
系统资源:CPU、Memory内存、Disk磁盘、Network网络 等
CPU使用率:CPU忙的时间的百分比
阈值: 一般不超过70%~80%
yù阈值:如果超过该值,系统容易出现系统瓶颈!
Memory 内存使用率:阈值 一般不超过80%
Disk 磁盘读写率: 平均每秒磁盘读/写的数据量
原因:磁盘读写速度远慢于内存、CPU,如果任务频繁读写磁盘,会严重影响速度!优化方案:尽量降
低磁盘读写率!
缓存:Cache 拿空间换时间!
耗费更多的内存空间,赢得更快的访问时间
网络传输率:不能过高,一般不超过网络带宽的一半!
2)系统分析与设计:系统分析师、架构师、高级软件工程师、项目经理、DBA 数据库管理员
《接口文档》、《开发文档》、《数据库设计说明书》
3)系统开发:程序员 根据需求和设计,开发软件代码、调试
4)软件测试:测试员 根据需求编写用例、执行,缺陷管理、提交报告(功能、性能、安全)
手段:手工、自动化...
5)系统实施:实施工程师
将测试过的产品部署到客户那里,维护并使用
如果遇到问题,及时反馈,调整和优化
综上所述:
需求分析->系统分析与设计->系统开发->软件测试->系统实施