• LoadRunner关联函数的脚本实例--如何操作关联参数


    LoadRunner关联函数的脚本实例--如何操作关联参数

     

    这几天一直在学习LoadRunnerVuGen编程,今天想对关联函数web_reg_save_param做详细的试验和研究:

     

    问题提出:如何对关联的数据进行字符串操作。下面使用了LoadRunner自带的订票例子为例,进行了这方面的试验。假设我要关联的数据是由几个字符串组成的。如何使这些字符串组成一个参数,供我后面的函数使用?

     

    解决方法:使用多个关联函数,对关联参数进行字符串操作,最后把生成的字符串保存成一个参数,供下面调用该参数的函数使用。

     

    脚本如下:

    Action()

    {

       int number1,number2;

           char session11[1000];

           char string[1000];

           int length;

           char *stringtemp;

           //char session22[20];

           web_reg_save_param("session1","LB=name=userSession value=","RB=.","Ord=ALL",LAST);

           web_reg_save_param("session2","LB=.","RB=<table border=0><tr><td>&nbsp;</td>","Ord=ALL",LAST);

           

     

           web_url("WebTours",

                  "URL=http://127.0.0.1:6080/WebTours/",

                  "Resource=0",

                  "RecContentType=text/html",

                  "Referer=",

                  "Snapshot=t1.inf",

                  "Mode=HTML",

                  LAST);

     

           strcpy(string,"");

           strcpy(string,lr_eval_string("{session1_1}"));

     

           //strcpy(session1,"");

     

           sprintf(session11,"{session2_1}");

           strcat(string,".");

           length= strlen(lr_eval_string(session11));

           length=length-2;

     

           number1=atoi(lr_eval_string("{session1_count}"));

           number2=atoi(lr_eval_string("{session2_count}"));

     

           lr_output_message("%d,%d",number1,number2);

     

           //lr_output_message("%d",length);

            stringtemp=lr_eval_string(session11);

           strncat(string,stringtemp,length);

           //srcat(string,session11);

     

           lr_save_string(lr_eval_string(string),"session");

     

           lr_output_message("%s",lr_eval_string("{session1_1}"));

           lr_output_message("%s",lr_eval_string("{session2_1}"));

           

           web_submit_data("login.pl",

                  "Action=http://127.0.0.1:6080/WebTours/login.pl",

                  "Method=POST",

                  "RecContentType=text/html",                "Referer=http://127.0.0.1:6080/WebTours/nav.pl?in=home",

                  "Snapshot=t2.inf",

                  "Mode=HTML",

                  ITEMDATA,

                  "Name=userSession", "Value={session}", ENDITEM,

                  "Name=username", "Value=jojo", ENDITEM,

                  "Name=password", "Value=bean", ENDITEM,

                  "Name=JSFormSubmit", "Value=on", ENDITEM,

                  "Name=login.x", "Value=50", ENDITEM,

                  "Name=login.y", "Value=10", ENDITEM,

                  LAST);

           lr_output_message("%s",lr_eval_string("{session}"));

     

           return 0;

    }

     有两个关联的参数,session1session2,最后生成session,被web_submit_data函数调用。蓝色部分是需要特别注意的地方。

    脚本编写调试过程中遇到的问题和解释:

    1. web_reg_save_param()中如果没有指定Ord=ALL的话,默认是取的第一个符合左右边界的值,这样我们使用关联的参数时可以直接使用变量名,如session1

    2. web_reg_save_param()中如果指定Ord=ALL的话,会生成一个数组,这样想取某个参数的话,需要使用的参数名需要加_和数组中的位置,如例子中取第一个session1_1,如果这时候仍然用session1,是取不到参数的值的.

    3. 顺序问题:对关联参数相关的操作,需要放到包含该关联数据的请求函数之后,如上紫色部分代码用到关联的参数的语句,都需要放到web_url()之后,否则也不会取到关联的数据

    4.注意lr_eval_string()函数和lr_save_string()函数的用法..

    转自:http://www.51testing.com/html/66/34866-75592.html

  • 相关阅读:
    Mac卸载vue-cli2X 时失败: Missing write access to --如侦探小说般的解谜之路
    mac-coursera网站DNS污染的解决方案
    mac摄像头打不开的问题
    node-npm-webpack
    webpack报错 : Can't resolve '.distundle.js'
    npm Error: listen EADDRINUSE 127.0.0.1:8080
    常用mac终端命令
    mac下的环境变量配置- cnpm :command not found
    less安装 出错问题
    vue-devtools vue开发调试神器
  • 原文地址:https://www.cnblogs.com/abcd19880817/p/7201489.html
Copyright © 2020-2023  润新知