今天看看第三篇“性能测试准备”都有哪些内容。
1. 测试方案编写
2. 测试环境准备及差异分析
3. 测试脚本编写及调试
4. 测试数据准备
1. 测试方案编写
完成前期调研后开始编写测试方案,测试方案主要是将前期调研内容提炼,为后续的测试准备和测试执行提供指导。
测试方案主要包括:测试目的、测试范围、测试准则、测试内容(测试指标、测试场景)、测试策略(测试执行策略、测试监控策略)、测试实施准备(测试环境、测试工具、测试挡板、测试数据、测试脚本等)、测试环境及工具需求(网络拓扑图、测试环境配置表、软件配置表)、测试输出(过程输出、结果输出)、测试风险分析等。
性能测试的测试环境、测试版本、测试场景、测试数据等要与生产环境相符,不然测试结果会存在差异、失真。
2. 测试环境准备及差异分析
测试环境
根据前期调研的系统架构、测试系统范围、生产环境等情况搭建性能测试环境,性能测试环境的软件及硬件配置最好与生产环境相同,但是实际测试中受资源限制,很难达到生产环境的标准。
因此,性能测试环境搭建时测试系统范围的前后端部分可以使用挡板或在不影响测试的情况下使用配置较差的服务器,但要确保测试系统范围的服务器与生产环境尽量接近。
性能测试环境差异分析
根据具体系统进行分析,重点考虑可能影响性能的部分,比如根据系统及业务类型瓶颈可能在应用服务器、中间件、数据库等不同的环节。
如果性能测试环境使用挡板或接入其他外部系统,需考虑挡板时间或外部系统响应时间,与真实环境之间的差异。
3. 测试脚本编写及调试
测试脚本主要为模拟真实的业务场景,因此脚本的报文等要可以模拟真实业务,但在不影响性能测试的情况下,部分报文、测试数据等可以不使用真实数据(如部分报文固定不变、Imei有时候可以固定等)。
测试脚本协议:脚本编写有多种协议,常用的协议有C、Java、HTTP、Sockets等。
测试脚本流程:脚本编写、参数化设置、添加事务、脚本调试。
测试脚本模式:vuser_int、Action、vuers_end。
Sockets脚本编写流程:
建立socket连接:lrs_create_socket(“socket0”, “TCP”, “RemoteHost=172.16.5.2:2906”, LrsLastArg);
组装报文、发送报文:
lrs_set_send_buffer(“socket0”, (char *)cOut1, strlen(msgbyte4)/2);
lrs_length_send( “socket0”, “buf0”, 0, LrsLastArg );
lrs_set_recv_timeout(150, 0);
lrs_set_recv_timeout2(149,0);
lrs_receive_ex(“socket0”, “buf1”, “NumberOfBytesToRecv=20”, LrsLastArg);
lrs_get_last_received_buffer(“socket0”,&BufVal, &intGetLen);
断开socket连接:
lrs_close_socket(“socket0”);
脚本调试:
设置Iteration Count调整迭代次数;设置参数及取值方式;执行并打印日志,查看是否执行成功并返回预期的结果。
以Sockets、Java协议脚本为例进行演示。
4. 测试数据准备
性能测试数据分为数据库基础数据和测试数据。
基础数据
根据测试范围确定测试业务所涉及到的数据库表,在这些表准备与生产环境数量差不多的数据,最好能够从生产环境脱敏导入。因为数据库存量数据会影响到业务的处理性能。
测试数据
测试脚本参数使用的数据,根据不同的业务进行构建,一般有使用数据库查询出的数据和虚拟的数据等。
测试数据量根据业务,有的参数可以使用重复数据、有的参数数据不能重复。
在进行测试执行前,需要对测试数据进行验证,根据业务类型,有的验证几条数据,有的需验证筛选所有数据,过滤出可用数据。
今天先到这,我们下期再见