• LR函数基础(一)(二)


    LR函数基础(一)

    函数用到:web_reg_find()、 lr_log_message()、 lr_eval_string()、strcmp()、atoi()

    Action()
    {
        web_reg_find("Text=liuej", "SaveCount=para_count", LAST); //文本检查,且保存变量

      web_submit_form("login.pl",
      "Snapshot=t3.inf",
      ITEMDATA,
      "Name=username", "Value={useranme}", ENDITEM,
      "Name=password", "Value={password}", ENDITEM,
      "Name=login.x", "Value=59", ENDITEM,
      "Name=login.y", "Value=1", ENDITEM,
      LAST);

     lr_log_message("username=%s  password=%s", lr_eval_string("{useranme}"), lr_eval_string("{password}"));

        lr_log_message("count= %d",lr_eval_string("{para_count}"));

        if (atoi(lr_eval_string("{para_count}"))>0)     //法1.验证是否找到了页面上的要检查的字符串
            lr_output_message("we find the string!");
     else
      lr_output_message("sorry,don't find the string!");


     if(strcmp(lr_eval_string("{para_count}"),"0")>0)  // 法2.验证是否找到了页面上的要检查的字符串
      lr_output_message("find");
     else
      lr_output_message("not find");

     return 0;
    }

    LR函数基础(二)

    (一)用到的函数:

    (1) web_set_option()   //重定向设置

    (2)web_reg_save_param和custom_request都常于处理参数的动态生成。

          web_reg_save_param() // 主要作用是从一个response中获得后续的request需要使用的数据,然后将其作为一个参数保存下来,供后续步骤使用。(从服务器获得的数据)

         web_custom_request()   // 则可以用于完全自定义参数向服务端发送的request。(自定义的数据)

    (3)web 检查函数:

       web_image_check()   // 放在url()函数“之后”
       web_find()           // 。。。。 “之后”
       web_reg_find()         // 。。。。“之前”
       web_global_verification()  // 。。“之前” ;注册函数,同web_reg_find但它是在之后所有的 Action类函数中执行搜索的。

    (4)保证迭代结束后关闭所有的链接。相应的函数放于下面两个函数之间,迭代后都会关闭连接。

         web_set_sockets_option("SHUTDOWN_MODE",Abrupt)  // 相当于迭代重置,初始化

          。。。。

         web_set_sockets_option("CLOSE_KEEPALVE_CONNECTIONS",1)  //关闭连接

         脚本中何时用到上面两个函数----通常出现下列情况:

          A:当采用cmd / netstat命令时,看到很多相关的Socket处于“wait” 状态
          B: 负载增大时连接失败
          C: mmdrv的句柄数 随着虚拟用户的运行而增加
          D: 当建立连接时出现“No buffer space available”错误信息。

    (二)附加例子:

     (1)重定向

    Action()
    {
     web_set_option( "MaxRedirectionDepth",  "0", LAST );  // 0表示未重定向,1表示一级定向。。。
     web_reg_save_param("google","LB=<A HREF="","RB="","Search=All",LAST);
     web_url("www.google.com",
      "URL=http://www.google.com/",
      "Resource=0",
      "RecContentType=text/html",
      "Referer=",
      "Snapshot=t1.inf",
      "Mode=HTML",
      LAST);

     }

    (2)web_custom_request() 自定义数据,向服务器提交数据

       Action()部分代码:

        strcpy(creq, "Body=1=on&flightID=");
        strcat(creq, lr_eval_string("{fID1}"));
        strcat(creq, "&2=on&flightID=");
        strcat(creq, lr_eval_string("{fID2}"));
        strcat(creq, "&.cgifields=1&.cgifields=2");
        strcat(creq, "&removeFlights.x=116&removeFlights.y=8");


        web_custom_request("itinerary.pl",
          "Method=POST", 
            "URL=http://localhost/MercuryWebTours/itinerary.pl",
            "RecContentType=text/xml",
             creq,                         //变量
            "Snapshot=t4.inf",
            LAST);

       详细访问:http://blog.sina.com.cn/s/blog_505bf9af0100a501.html

  • 相关阅读:
    Spark学习笔记2(spark所需环境配置
    Spark学习笔记1(初始spark
    zookeeper基本讲解及基本命令和配置 (转)
    计算机网络面试常考(转载)
    C++面试笔试题汇总
    复杂指针解析
    如何限制一个类对象只在栈(堆)上分配空间?
    虚函数实现机制
    C++内存分配方式详解
    C++中指针和引用的区别(转载)
  • 原文地址:https://www.cnblogs.com/zhengah/p/5099128.html
Copyright © 2020-2023  润新知