当测试工程师突然接到一个性能测试任务时,最头疼的莫过于性能测试场景的设计?那怎么才能做到场景高度覆盖和有效执行呢?今天就和大家分享一下性能测试场景设计和场景执行中亟需注意的几个问题。

场景设计

a)场景真实性:每个脚本的具体操作步骤,是和真实环境操作类似的,是对真实环境的模拟,每个场景内的测试程序之间的逻辑关系、压力比重也是与真实环境类似的,也是要贴近真实环境的。将这些真实环境信息量化到可用程序模拟程度,才能进一步保障场景真实。 具体到场景中各个脚本所占的比例主要是通过线程组来控制的,可以控制多少个线程在某一阶段运行哪一个或几个脚本,实操需要注意两个相邻的操作动作之间的习惯性时间间隔、某些特定操作的集合在特定时间同时发起请求等。

b)数据驱动:需要将输入数据进行参数化,参数化数据尽量选择读文件的方式。如果数据量不大,可以在并发程序开始执行前先将数据读内存。 值得注意的是,不是所有的数据都可以通过读取预先定制的文件来获得。而是在程序执行过程中,在返回结果中获取这个数据信息,然后运用到下一个操作中。这讲的是性能测试工具中的关联功能,方便在后续的项目中复用或者调用。

c)事务:一个复杂的操作由很多个事务组合而成。使用事务可以更方便灵活的进行数据统计。

d)检查点:检查点的作用是验证操作结果是否正确。可以写在程序中,也可以通过操作返回结果来判断。具体实现的方式不固定。只要能够方便检查,运行的并发请求都是有效的。但是检查点不宜设置过多,因为在做检查时会有系统消耗,影响并发性。

保存登录信息:很多系统性能测试场景是需要在用户登录状态下操作的。那么保存登录用户信息也是一个很重要,需要我们注意。

场景执行

软件测试执行过程中,要特别注意测试脚本和场景运行的有效性。在测试程序中我们加入了检查点就是为了保证程序正确的执行、产生我们所需要的负载。但是,在测试程序长期执行过程中,我们还需要经常检查测试正确是否是正确执行。否则得出的测试结果可能错误且无意义。

测试执行与监控的主要目的是根据设计方案去验证系统是否存在瓶颈,给测试分析提供各种分析数据。此过程会与测试分析过程不断进行重复执行,直至真正确定出系统瓶颈所在 。

a)测试执行的关键点:执行测试的过程中,有一些需要重点关注的事件: 在测试执行前需要确认:用例和场景确认、测试环境确认、测试数据确认、测试脚本确认、测试工具和监控工具确认。 执行过程中注意:执行每个场景时都需要做执行记录、结果搜集等工作。 执行完成后注意:数据恢复、环境清理、结果整理。

b)测试记录:测试过程中要记录如下信息:运行前的系统配置、运行前的参数或者软件调整情况;运行过程中的系统资源的使用情况;运行过程中的故障现象;请求的响应时间,单位时间内的处理请求数 ;请求的成功率等。