版权声明:本文为原创文章,转载请先联系并标明出处
做过性能测试工作或者参加过性能测试相关培训的小伙伴应该对参数化都不会陌生,参数化作为测试脚本中最基本的使用技巧,需要每个从事性能测试的小伙伴都能熟练掌握。
在测试工具中,每一个模拟用户都是一个线程,而在我们的仿真模型里,每一个用户都应该是一个真实的业务实体,每个用户代表的业务含义、他可以去处理的业务以及在处理业务的过程中可以操作的数据都应该是不同的,这样才可以更真实的表达现实世界中系统使用
的负载模型。为了达到这个目的,将测试工具的每一个线程和仿真模型中的每一个用户及操作对应起来,就需要使用到参数化的脚本处理。
说的有些太严肃了,简单举个例子,比如我们要测试用户注册的功能,注册的用户名是不允许重复的。我们录制完的脚本都是hard code,直接进行并发测试的话,无疑所有模拟用户的线程在注册的时候输入的都是相同的用户名和密码,这样肯定是会有很多错误请求无法达到服务端,也就不能产生我们预期的负载压力。这时候,针对用户名就需要我们使用参数化的技巧来实现,每个注册的用户每次注册都使用不同的用户名来填写注册信息。
常用的测试工具都提供了参数化的功能,像LoadRunner可以为每个脚本在本地生成一个参数数据列表的文本,Jmeter也可以直接引用某一个参数数据的文本,从中读取数据来实现参数化。但是这些实现方式都是把参数的作用域限制在某一个脚本中,如果多个脚本需要相同的参数,比如我们的多个脚本都有登录的功能,登录用户的参数数据列表是一样的,那么现在这种实现方式就无法实现复用,需要在每个脚本都重复进行参数化设置。
HyperPacer提供的参数化解决方案中,提供了数据池的功能,所有