欢迎来到天天文库
浏览记录
ID:34763023
大小:112.68 KB
页数:4页
时间:2019-03-10
《小议loadrunner参数化数据的构造》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、小议LR参数化1.什么是参数化参数化的目的是向服务器批量提交符合业务逻辑的数据。这些数据可能是另一个业务已经生成的,需要查询数据库的某些表得出。也可能是首次新增的数据,只要符合业务逻辑、不违反数据库表约束条件即可。用于参数化的数据来源获取方式备注首次新增到数据库的数据使用数据生成工具制造这些数据必须符合业务逻辑,不违反数据库表的约束条件已由其他业务模块生成的数据从数据库表查询这些数据向该模块编码人员学习业务,明确新增一条记录时会写到数据库的哪几张表里,查询这些数据时,条件应该怎么写。假设当前要测一个“并发用户注册”的模块,这些注册信息是数据库没有的,理论上是用户自己填写的。而通
2、过向开发人员学习,知道这些注册信息会最终写入到数据库的某一张表里。如下图,PID是个人编号,NAME,AGE,JOB都是在页面填写的基本信息。则录制脚本回放后,应该通过查询数据库的表,看看记录数是否增加了且增加的数据可以用于其他业务来验证脚本是否录制成功。单纯地看LR回放是否不报错是不行的,因为有时候,即使回放没有报错,数据库却没有新记录生成,一般是由脚本没有做好关联或参数化引起。1.参数化的数据怎么造?如果数据是需要查询出来的,没什么好说的,跟开发人员学习,写出一大堆sql语句,查就是了,顺便写好数据回滚的语句,在重复测试某个业务的时候就派上了用场。并不是某张表的每个字段都需
3、要放到参数化文件里,注意脚本里提交什么,就放什么。如果是造数据,一般都是先分析需要把哪几个字段提交给数据库,然后用Excel(少量数据)或者DATAFACTORY(大量数据)把这些字段的值造出来。如下图,Excel的“自动填充选项”可以很方便的生成这种数据几个小技巧:l在controller里同时运行几个动作相同、设置不同(如thinktime、模拟网速、集结点)的脚本时,可以在参数化的时候,给某个字段加上“组标识”(如上图中G1、G3,这些组的设置不同)这样做完测试后,再查询“数据库表记录”可以看看这几个脚本生成数据的情况。使用这种带有标识的数据的另一个好处是:系统可能存在某
4、个业务会因为一条数据的关联数据量不同而处理时间不同(例如,某业务要求给若干单位下的所有人发津贴,单位的员工数不同,发津贴用的时间不同。如果在单位编号上做了标识,则可以看出5并发给一大批员工数为1000的单位发津贴和5并发给一大批员工数为10的单位发津贴用的时间差多少)并发数每笔业务处理的记录数平均一笔业务的耗时5并发每个单位下都是1000人7秒每个单位下都是10人2秒l为了保证参数化的数据不出错,分隔符尽量使用逗号,不要使用空格或制表符。(如下图)因为,从PLSQL、Excel拷贝出来的数据(本身就有制表符号),倘若某一条记录有空格,它在TXT中又是空白的,肉眼很难看出来。大批
5、量的数据替换可以使用UltraEdit非常棒的文本处理工具。还有一点需要注意的就是,如果每条参数化的数据只能在未来的其他业务里用一遍,则参数化脚本里应该参照下图(红色部分)设置这个AllocatevaluesforeachVuser的意思也曾让我费解。不知道我以下的解释对不对:在这个空格里填写的数N,乘以将来controller里给这个脚本分配的Vuser数X应该等于(也可以小于,但绝不能大于)你参数化的数据量M。换句话说,一共造了M条数据,若打算用X个Vuser把这M条数据压到数据库里,则这个空格就应该填N,N=X/M。为什么要用这个功能呢?我估计是用于业务吞吐量测试,将M笔
6、业务(某个数量级)平均分配给X个用户,然后看这些业务都被处理完毕需要多少时间。因为有些Vuser会先处理完分配给他们的业务,则按照上图的设置,他们会做退出动作。这种测试造出的数据是事先规划好的,顺便可以去查一下,这个数据量的数据占用了多少硬盘空间。再除以测试占用的时间,可以得到一个I/O指标。(也许这很不科学,请大家多批评指点)
此文档下载收益归作者所有