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

LR函数基础(一)(二)的更多相关文章

  1. LR函数基础(二)

    (一)用到的函数: (1) web_set_option()   //重定向设置 (2)web_reg_save_param和custom_request都常于处理参数的动态生成. web_reg_s ...

  2. ~~函数基础(二):返回值&作用域~~

    进击のpython 函数的返回值和作用域 上文我们讲到了函数的基础--参数的相关问题 举的例子也都是带有print的函数定义 但是有个问题就出现了:我不想打印这个函数处理后的参数 我想拿到这个参数然后 ...

  3. python — 函数基础知识(二)

    目录 1 返回值 2 作用域 3 函数小高级 4 函数中高级 1 返回值 def func(arg): # .... return 9 # 返回值为9 默认:return None val = fun ...

  4. LR函数基础(一)

    函数用到:web_reg_find(). lr_log_message(). lr_eval_string().strcmp().atoi() Action(){    web_reg_find(&q ...

  5. PHP基础入门(二)【PHP函数基础】

    PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...

  6. C++学习基础十二——纯虚函数与抽象类

    一.C++中纯虚函数与抽象类: 1.含有一个或多个纯虚函数的类成为抽象类,注意此处是纯虚函数,而不是虚函数. 2.如果一个子类继承抽象类,则必须实现父类中的纯虚函数,否则该类也为抽象类. 3.如果一个 ...

  7. Less-mixin函数基础二

    //mixin函数 基础使用方法 --包含选择器,example: .test(){ &:hover{ border:1px solid red; } } button{ .test; } / ...

  8. RequireJS基础(二)

    上一篇是把整个jQuery库作为一个模块.这篇来写一个自己的模块:选择器. 为演示方便这里仅实现常用的三种选择器id,className,attribute. RequireJS使用define来定义 ...

  9. php基础篇-二维数组排序 array_multisort

    原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...

随机推荐

  1. [转]Redis作者:深度剖析Redis持久化

    From : http://www.iteye.com/news/24675 Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等 ...

  2. 利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)

    本文将介绍如何利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序,分为上下两篇.上篇主要介绍实现,下篇主要介绍界面. 打开Visual ...

  3. idea 2018.1破解激活方法,有效期至2099年 idea 激活 破解

    最近笔者测试了好多破解Idea的方法,最简单操作方法莫过于用license server激活,但是此类方法对最新的2017.3.2版已经无效了,亲测哦,如下图所示.  针对新版的IntelliJ ID ...

  4. 【未解决】centos 6.4 xen4.2 在关机的时候很慢

    centos xen 在关机的时候 下面的关闭DomUs虚拟机 耗时很长... stopping xenconsoled daemon: [OK] sending shutdown to all Do ...

  5. 携程机票的ABTest实践

    携程ABTest伴随UBT(User Behavior Tracking System)系统一起,两年多的时间,从最初online寥寥几个实验,到现在单是机票BU每周就有数十个app/online/h ...

  6. JS Replace() 高级用法(转)

    在很多项目中,我们经常需要使用JS,在页面前面对前台的某些元素做做修改,js 的replace()方法就必不可少. 经常使用"ABCABCabc".replace("A& ...

  7. [leetcode]Validate Binary Search Tree @ Python

    原题地址:https://oj.leetcode.com/problems/validate-binary-search-tree/ 题意:检测一颗二叉树是否是二叉查找树. 解题思路:看到二叉树我们首 ...

  8. Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program

    今天同事在一个服务器(winserver 2008 x64)上新建了一个IIS(7) 网站,但是报了如下错误: Could not load file or assembly 'System.Data ...

  9. 【Java】PS-查看Java进程-线程数

    PS-查看Java进程-线程数 ps 线程 个数_百度搜索 查看进程的线程数命令 - CSDN博客 java命令行运行jar里的main类 - coderland - 博客园

  10. GLFW_KEY_KP_ADD和GLFW_KEY_KP_SUBTRACT

      这两个键的代码分别为: GLFW_KEY_KP_ADD(334) GLFW_KEY_KP_SUBTRACT(333)   对应的是键盘右侧数字面板上的+ -键.