具体介绍了需要准备的测试数据类型及准备数据的常用方法,本文重点介绍了中国软件评测中心在实施性能测试项目过程中进行数据准备的通常做法。结合这些理论和方法将使我性能测试数据准备工作实施的更具系统性,同时也能够使测试结果更加接近真实生产环境下的结果。
测试数据的准备是一个非常系统化、工作量非常庞大一项工作。如何准备支持不同业务操作、不同测试类型的大量测试数据来满足负载压力测试的需求是性能测试过程中经常面对的一个重要话题。软件性能测试过程中。
从而保证了性能测试工作的顺利进行,中国软件评测中心在历来的性能测试过程中重视性能测试数据的准备工作。也保证的性能测试结果的准确性和有效性。中国评测在近期开展的某金字工程非功能测试项目使作者了解到数据准备工作得系统性、复杂性,由此作者将性能测试数据准备工作简单归纳,希望对从事性能测试工作的测试人员有一定的借鉴和参考。本文重点介绍一下性能测试要准备哪些数据及准备数据的常用方法。
一、数据准备的常用方法:其中新建系统或者新旧系统差异较大的这类系统需要手工创立,1对于业务系统的初始化数据一般采用手工创建和数据导入的方式来完成。而具有遗留系统的升级系统很大一局部可以通过数据导入的方式完成数据初始化工作。铺底数据的准备通常数据翻倍的方式来完成。弄清楚数据库里面主表和附表之间的关系是一对多或多对多,数据翻倍需要采用找出数据库之间的表结构关系。对于一对多关系的要推算一张主表的一条记录大概对应附表的几条数据,并据此把数据翻倍。具体实施数据翻倍时可以利用 CPU运算能力高效率地生成的数据,并导入数据库,从而发生出所需的铺底数据。或者通过编写和执行存储过程来完成。要保持原表的约束关系;3.每张表的数据量要符合真实情况。准备铺底数据要注意以下几个原则:1.数据库中的数据量要比内存大上若干倍;2.数据在准备的时候。3.参数化数据准备一般采用从数据库提取现有数据或者人工添加数据的方式来完成。
二、一般需要准备三类数据:初始化数据、铺底数据(历史数据)和参数化数据。执行负载压力测试前。
1.铺底数据(历史数据):由于数据库中数据量相对较少,当业务系统刚刚上线的时候。系统整体响应时间很快,用户使用体验较好。但随着业务的继续开展,业务系统数据库中的数据量会成倍的增加,业务系统的相关操作响应时间会因为数据库中业务数据的快速增长等而变的越来越长,用户使用体验会变得很难忍受,因此,性能测试时,需要加入相当规模的铺底数据,来模拟未来几年业务增长条件下的系统相关操作的性能表示。例如:要测试并发查询业务,那么要求对应的数据库和表中有相当的数据量以及数据的种类应能覆盖全部业务。
2.初始化数据准备:并不能马上进行相关业务的负载压力测试,业务系统装置布置完成后。需要对系统进行初始化操作,系统初始化主要对增加系统中的基本角色信息、机构信息、权限信息、业务流程设置等数据,这些数据是业务系统能够开展相关业务的基础。初始化数据是为了识别数据状态并且验证用于测试的测试案例的数据,需要在业务系统搭建完成后依照系统实际运行要求实施导入,供测试中使用。
3.参数化数据:为了模拟不同的虚拟用户操作的真实负载情况,负载压力测试过程中。同时由于业务系统中大部分业务操作的交易数据不能重复使用,因此,需要为不少用户输入信息准备大量参数化数据,以保证正常实施负载压力测试。参数化测试涉及的范围很多,例如,模拟不同用户登录系统,需要准备大量用户名及相应密码参数数据;模拟纳税人纳税申报,需要准备大量的纳税人识别号、纳税人内码或纳税人系统内部识别号等参数数据,这类数据准备要求符合实际运行要求并且保证数据表之间的关联关系。
如果已有100个真实的用户账号信息,1使用数据库现有真实数据。如测试100个用户同时进行纳税申报的情况。没个用户也有可操作的若干组纳税户,那么在准备数据时,就可以直接调用这些现有的数据来完成。如果现在没有100个现成的真实用户账号信息,2人工添加准备数据。以登录测试为例。那么就需要自己手动去创建,当然创立的方式就有很多种了可以使用LoadRunn进行创立,也可以写一段小顺序去创建,当然还可以选择手动创立。但是当数据量很大时,选择手动创建就是一件很困难的事,如测试BOSSBusi&OperatSupportSystem系统,几千个虚拟用户并发,如果手动去准备这些数据就很麻烦。因此对于并发度较高的业务,可以采用数据库后台对可用数据进行数据翻倍的方式来完成,也可以通过LoadRunn执行并发测试来完成,例如可以通过执行用户注册并发测试来完成新用户创建。
可以根据并发需要准备相应的后台sql来完成操作,理清楚表关系图中的对应关系,同样也适用于基础数据的准备,上述方法不只适用于参数化数据的准备。可以根据项目的实际情况来使用,可以达到快速准备测试数据的目标。