如何编写性能测试用例

Posted 全栈测试笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编写性能测试用例相关的知识,希望对你有一定的参考价值。

前言

写测试用例,是测试绕不开的工作内容,不管是功能、自动化,还是性能。先来回顾一下功能测试用例主要包含的要素:测试用例编号、测试标题、所属模块、测试需求项编号、案例状态、预置条件、优先级、测试输入、操作步骤、预期输出、实际结果、案例设计者、设计日期、案例性质等。性能测试用例(有的称为场景用例)的设计,有别于功能测试用例、自动化测试用例的设计,毕竟,考虑的点不一样。对于性能测试来说,一般要考虑这4种场景:单场景、混合场景、稳定性场景、异常场景。

 

下面,结合笔者实际工作,分享下单场景的用例是如何设计的。

 

单场景的定义

  有的称为接口基准(Benchmark)、或者单交易的容量,总之,这个不是真实的业务原型(可以简单理解为不同业务的使用情况)。

 

单场景压测的目的

  既然单场景不是真实的业务原型,为什么不直接做混合场景的压测呢?其实,做单场景压测的目的是测试出这个单业务的最大tps,方便判断瓶颈,比如,业务部门给的混合场景的tps(假设这个tps值是合理有效的),根据业务原型比例计算后,业务A的目标tps都比你单场景的最大tps还要大,那是不是应该让开发提前优化了?如果在混合场景压测中,发现业务A的tps已经到达或者接近其单场景最大tps,但是混合场景还没有达标,那说明瓶颈在业务A。

 

单场景的来源

  有人可能要问,单场景从哪里来?如果你们业务部门或者其它部门能给,那最好,如果不能给,你作为性能测试人员,要引导相关人员给,总之,我觉得这个不能性能测试单独定,否则后期出问题可能你独自背锅哦,要尽最大努力保证不出问题,哪怕出问题,也要一起背锅。单场景是来自于业务原型,但是不是每个业务接口都需要做压测,所以,我们这里说的业务原型,是混合场景的业务原型,混合场景里面,每个业务接口都需要做单场景压测。至于业务原型如何获取,这是一个大话题,本次分享暂不讨论,如果想交流,欢迎微信留言。


项目架构及服务器清单
我们用个简单的架构来举例:nginx + tomcat*2 + mysql


 

单场景用例

除了基于压测工具的设计(假设用的压测工具是jmeter),还包含监控的设计、预期结果、实际结果

部分预期结果(根据项目实际情况写)

部分实际结果 

 如果你的架构很复杂,写重点即可,无需把过多的时间耗费在文档上,况且后期你也可以慢慢完善。 

 

补充:jmeter脚本

连续阶梯加压,看线程、tps、rt的趋势

 

另外,混合场景、稳定性场景、异常场景的用例设计,有不清楚的可以联系作者。

============================= 好好学习 ==========================
> > > 1、咨询问题,请加作者微信: ren168632201
> > > 2、性能测试从0到实战: https://www.cnblogs.com/uncleyong/p/12311432.html
> > > 3、自动化测试实战: https://www.cnblogs.com/uncleyong/p/12016690.html
> > > 4、测试基础汇总: https://www.cnblogs.com/uncleyong/p/10530261.html
> > > 5、声明:如有侵权,请联系删除。
============================= 升职加薪 ==========================

以上是关于如何编写性能测试用例的主要内容,如果未能解决你的问题,请参考以下文章

性能测试用例实例

WEB性能测试用例设计

如何统一接口测试的功能自动化和性能测试用例

如何统一接口测试的功能自动化和性能测试用例

性能测试用例设计

性能测试策略