- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关联函数的高级使用-Testing
3.7.6 关联函数的高级使用
上面详细介绍了关联的作用和关联函数的详细选项,那么在工作中除了要使用关联函数
获得服务器返回以外,还能做什么呢?
例如论坛一个版面中有20个帖子,如何实现随机单击其中某一个帖子的操作呢?回想
一下关联选项Ord=All 的时候关联出来的结果是不是一个参数数组?既然是参数数组,怎么
从参数数组中取出一个随机的值呢?
在不同的LoadRunner版本中处理这个问题使用不同解决方法,现在来分别了解一下具
体的方案(这里关联后的参数名为link,设置Ord 为All)。
LoadRunner 9系列
在LoadRunner9 中做这个操作非常简洁,因为有了参数数组函数,所以只需要这样写
就可以了:
char * siteval;
siteval =lr_paramarr_random(link)
即直接从参数数组link中取一个随机的值。
问题:如果需要随机选择前10个帖子怎么办?
Lr_paramarr_random()函数的随机范围其实是根据lr_paramarr_len()决定的。比如数组长
度是20,随机值介于1~20之间,现在手动将这个参数数组设置得小一些,问题就解决了:
char * siteval;
lr_save_string(10,link_count);
siteval =lr_paramarr_random(link);
思考:如果需要随机获取关联结果中的第5至第10个对象,该如何处理呢?
在这种情况下,需要引入随机数,生成随机值为5~10的正整数,再调用lr_paramarr_idx()
函数进行处理即可。
如果使用的是LoadRunner9以前的版本,没有这个参数数组函数怎么办?
LoadRunner 8以前的版本
假设存在关联后的参数数组为{link},数组记录总个数为20,需要取得其中的一个随机
关联值可以这样写:
char linkname[100],num[100];
int randnum;
//关联和请求操作省略
randnum=rand()%atoi(lr_eval_string({link_count}))+1;//获得关联参数数目内的
随机数字
strcpy(linkname,{link_);
//lr_error_message(%s,linkname);
itoa(randnum,num,10);
strcat(linkname,num);
strcat(linkname,});
//lr_error_message%s,linkname);
lr_save_string(lr_eval_string(linkname),temp);
51Testing 软件测试网作品系列 《性能测试进阶指南——LoadRunner9.1 实战》
这段代码看起来是比较头疼的,因为涉及了很多新的函数。
atoi()类型强制转换函数的作用是将字符串型的内容转化为整数型。
atoi(字符串);
由于使用求余操作是对一个数字进行操作,所以需要使用atoi将参数转化为正整数。
使用Rand()%atoi(lr_eval_string({link_count})可以得到0~19的随机正整数。
strcpy()字符复制函数就是将一个字符串复制到一个变量中去。
strcpy(变量名,需要复制的字符串内容);
所以strcpy(linkname,{link_}的作用是将{link_这个内容保存到变量linkname中。
itoa()也是一个强制类型转换函数,和atoi()相反,它是将整数型内容转化为字符串型。
itoa(数字型,字符串,转化格式);
这里转化格式使用的是十进制。为了拼接参数数组,需要生成{link_2}这样的参数,
通过前面的随机函数已经生成1~20的随机正整数,现在需要把这个数字拼接上去,这里使
用strcat()来实现,由于strcat()必须使用字符串,所以需要将随机整数
文档评论(0)