我有LR脚本,其中包含Action部分中近20个类似的事务。
脚本片段在这里:
lr_start_transaction("select random item in Methodology");
// 1st transaction
web_url("Load Testing Terminology",
"URL=http://***/Load_Testing_Terminology",
"Resource=0",
"RecContentType=text/html",
"Referer=http://***/Methodology",
"Snapshot=t21.inf",
"Mode=HTML",
LAST);
// 2nd transaction
web_url("Concepts",
"URL=http://***/Concepts",
"Resource=0",
"RecContentType=text/html",
"Referer=http://***/Methodology",
"Snapshot=t22.inf",
"Mode=HTML",
LAST);
...
// (and so on till last transaction in transactions list)
lr_end_transaction("select random item in Methodology",LR_AUTO);
对于每个执行的脚本,我只需要从此列表中选择1个事务。
你能告诉我,我怎么能意识到这个随机选择?
答案 0 :(得分:2)
现在我需要从我的页面Methodology上的有用链接获得1个随机链接。 并且条件是随机事务的名称应该从该事务的相对URL获得,如下所示:
"random_link_relative_URL" = "/index.php/What_are_the_Goals_of_Performance_Testing?"
本案例的代码如下:
Action()
{
lr_start_transaction("open index page");
web_url("***",
"URL=http://{HOST}/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t19.inf",
"Mode=HTML",
LAST);
lr_end_transaction("open index page",LR_AUTO);
/* in link_name we are collecting elements of links array on Methodology page*/
/* in my case usefull links have the structure like this:
<p><a href="/index.php/Load_Testing_Terminology" title="Load Testing Terminology">Load Testing Terminology</a>
and useless links have different HTML-code structure,
therefore we need to use LB and RB to limit useful HTML snippets like this:
/index.php/What_are_the_Goals_of_Performance_Testing */
web_reg_save_param("link_relative_URL", "LB/ic=<p><a href=\"", "RB=\" title", "ORD=all", LAST );
/* the array containing 21 items of link_relative_URL is created when the transaction Methodology is performed */
lr_start_transaction("Methodology");
web_url("Methodology",
"URL=http://{HOST}/index.php/Methodology",
"Resource=0",
"RecContentType=text/html",
"Referer=http://***/index.php",
"Snapshot=t20.inf",
"Mode=HTML",
LAST);
lr_end_transaction("Methodology",LR_AUTO);
/* using `lr_paramarr_random` function we can choise 1 random link from array of link_relative_URL and save this random link from array to parameter colled random_link_relative_URL */
lr_save_string(lr_paramarr_random("link_relative_URL"),"random_link_relative_URL");
/* let's verify that {random_link_relative_URL} was saved */
`lr_output_message("random link is %s",lr_eval_string("{random_link_relative_URL}"));`
/* let's save the relative URL `random_link_relative_URL` to variable colled `random_link_name` */
sprintf(random_link_name, lr_eval_string("{random_link_relative_URL}"));
/* start transaction random_link_name */
lr_start_transaction(random_link_name);
/* using this sintax we will see the name of random link in requst's status */
web_url(lr_eval_string("{random_link_relative_URL}"),
"URL=http://{HOST}{random_link_relative_URL}",
"Resource=0",
"RecContentType=text/html",
"Referer=http://{HOST}/index.php/Methodology",
"Mode=HTML",
LAST);
/* close transaction */
lr_end_transaction(random_link_name, LR_AUTO);
return 0;
}
在第一步中,我们将在Methodology页面,第二个选择的随机链接以及第三个 - 具有此随机链接的名称和URL的事务上看到有用链接的数组。
第二种方式。
Action()
{
lr_start_transaction("open index page");
web_url("***",
"URL=http://{HOST}/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t19.inf",
"Mode=HTML",
LAST);
lr_end_transaction("open index page",LR_AUTO);
/* saves pages names as link_name on Methodology web page using limitations in HTML tag */
web_reg_save_param("link_name", "LB/ic=<a href=\"/index.php/", "RB=\" title", "ORD=ALL", LAST );
lr_start_transaction("Methodology");
web_url("Methodology",
"URL=http://{HOST}/index.php/Methodology",
"Resource=0",
"RecContentType=text/html",
"Referer=http://***/index.php",
"Snapshot=t20.inf",
"Mode=HTML",
LAST);
lr_end_transaction("Methodology",LR_AUTO);
/* select random link from links array on the page Methodology */
random_tr = lr_paramarr_random("link_name");
return 0;
}
解决此任务的方法可能是下一步:
在“操作”部分中,仅使用2个参数{name_of_random_link}
和{URL_of_random_link}
编写1个请求:
web_url("{name_of_random_link}",
"URL={URL_of_random_link}",
"Resource=0",
"RecContentType=text/html",
"Referer=http://***/Methodology",
"Mode=HTML",
LAST);
包含20个相关参数{name_of_random_link}
和{URL_of_random_link}
的20个字符串的列表放在参数列表文件中。
从此列表中随机选择{name_of_random_link}
,并将{URL_of_random_link}
选为“与URL_of_random_link相同的行”。
答案 1 :(得分:2)
为什么你根本不对此进行编码,因为链接数量可能在下一次构建中变为30或40或50或6?您的脚本是否应该足够灵活,无法收集页面上的URL列表,然后随机选择一个?
考虑标准关联方法,将URL列表收集到一个数组中,然后选择一个数组元素用于继续下一页。