首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从LR中N个类似事务的列表中随机选择1个事务?

如何从LR中N个类似事务的列表中随机选择1个事务?
EN

Stack Overflow用户
提问于 2013-09-09 09:55:43
回答 2查看 4.7K关注 0票数 1

我有LR脚本,其中包含近20个类似的事务在行动部分。

脚本的片段在这里:

代码语言:javascript
复制
        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);

我只需要从这个列表中为每个执行脚本选择一个事务。

你能告诉我,我怎么才能实现这个随机选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-09 13:45:06

考虑到在下一次构建中链接的数量可能会更改为30、40、50或6,为什么要对此进行硬编码呢?您的脚本不应该足够灵活地收集页面上的URLS列表,然后随机为您选择一个吗?

考虑将URLS列表收集到数组中的标准关联方法,然后选择一个要使用的数组元素继续到下一个页面。

票数 2
EN

Stack Overflow用户

发布于 2013-09-09 11:16:57

现在,我需要从我的页面方法上的有用链接得到一个随机链接。条件是,随机事务的名称应该从该事务的相对URL中获得,如下所示:

代码语言:javascript
复制
"random_link_relative_URL" =  "/index.php/What_are_the_Goals_of_Performance_Testing?"

下面是本例的代码:

代码语言:javascript
复制
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;
}

在第一步,我们将看到有用的链接数组在方法学页面上,在第二选择的随机链接,在第三事务,其中有这个随机链接的名称和URL。

第二条路。

代码语言:javascript
复制
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;
}

解决这一任务的方法可能是下一个:

在操作部分中,只编写一个包含两个参数( {name_of_random_link}{URL_of_random_link} )的请求

代码语言:javascript
复制
web_url("{name_of_random_link}", 
"URL={URL_of_random_link}", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=http://***/Methodology", 
"Mode=HTML", 
LAST);

包含两个相关参数{name_of_random_link}{URL_of_random_link}的20个字符串的列表放在参数列表文件中。从这个列表中随机选择{name_of_random_link},选择{URL_of_random_link}作为“与URL_of_random_link相同的行”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18695710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档