压力测试
压力测试:是在一定的负荷条件下长时间连续进行系统给系统性能造成的影响。
负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。
是在**强负载(大数据量、大量并发用户等)**下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。
负载测试
1负载测试是从并发量维度出发,不断增加并发量发情况下,系统的性能指标
压力测试是从访问时间的维度出发,在并发量一定的情况下不断增加连续访问的时间情况下,系统的性能指标。
举例:负载测试:服务员在单位时间内不断增加开发工作量,查看服务员在不同工作量下完成工作的程度,从而了解该服务员的技术水平
简单总结如下,
负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。
性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行。
压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
3.专项测试
1.为什么要专项测试?
手工测试之后,自动化测试之后,接口测试,性能测试之后,线下环境、预发布环境都没有问题了,测试工作看似完整,但是到了用户生产环境,安装使用过程中还是有很多之前没有预料的问题被反馈过来,比如: crash问题、设备兼容性问题、电量消耗过快问题等。
这些问题通过上边的测试难以找出,所以要引入专项测试包括:兼容性测试、流量测试、电量测试、弱网络测试、稳定性测试、安全测试和环境相关测试。
2.常见的专项测试:
兼容测试:APP版本/分辨率/同一账号并发登录/主流厂商和系统的兼容
安全性测试:敏感信息、账号密码、数据通讯等是否加密
流量测试:WIFI、4G等情况(分两种1.客户端消耗2.后台消耗)
网络测试:不同网络环境、不同信号下运行程序
稳定性测试:主要针对(闪退、卡死、等)
电量测试:App运行后的实际耗电量
环境测试:(干扰、权限、三方依赖、冲突。交互、安装/卸载等测试)
tps/qps
tps:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
qps:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数
系统吞吐量
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间