LoadRunner例子:检查点为参数的一个例子

检查点是LoadRunner的一个功能,用来验证业务功能的正确性。如果检查的内容是变化的,脚本该如何写呢?

问题提出:LoadRunner订票网站例子中,创建一个虚拟用户脚本,在登陆完成之后,设立一个检查点,来检查“welcome, xxx”。其中xxx为登陆的用户名称。

解决方法:

1)使用web_find() 做检查点

Action()
{

//连接字符串,把welcome和用户名组合成一个字符串

char teststring[1024]="Welcome, ";
 strcat( teststring,lr_eval_string("{username}") );
 lr_output_message("%s", teststring);
 lr_save_string( teststring,"findtext" );

// [WCSPARAM WCSParam_Diff1 43 97279.0909680032fAADHQDpctVzzzzHDAAccpHfQtf]

//Parameter {WCSParam_Diff1} created by Correlation Studio

//关联操作
 web_reg_save_param("WCSParam_Diff1",
  "LB=userSession value=",
  "RB=>",
  "Ord=1",
  "RelFrameId=1.2.1",
  "Search=Body",
  "IgnoreRedirections=Yes",
  LAST);

web_url("WebTours",
  "URL=http://127.0.0.1:1080/WebTours/",
  "TargetFrame=",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=",
  "Snapshot=t1.inf",
  "Mode=HTML",
  LAST);
 lr_think_time(11);

lr_start_transaction("test");

web_submit_data("login.pl",
  "Action=http://127.0.0.1:1080/WebTours/login.pl",
  "Method=POST",
  "TargetFrame=body",
  "RecContentType=text/html",
  "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
  "Snapshot=t2.inf",
  "Mode=HTML",
  ITEMDATA,
  "Name=userSession", "Value={WCSParam_Diff1}", ENDITEM,
  "Name=username", "Value={username}", ENDITEM,     //参数化用户名
  "Name=password", "Value=bean", ENDITEM,
  "Name=JSFormSubmit", "Value=off", ENDITEM,
  "Name=login.x", "Value=42", ENDITEM,
  "Name=login.y", "Value=13", ENDITEM,
  LAST);

//检查点

web_find("web_find",
  "What={findtext}",
  LAST);

lr_end_transaction("test", LR_AUTO);

return 0;
}

2)使用web_reg_find()做检查点

Action()
{

//字符串操作,生成要检查的字符串变量

char teststring[1024]="Welcome, <b>";
 strcat( teststring,
  lr_eval_string("{username}") );
 lr_output_message("%s", teststring);
 lr_save_string( teststring,"findtext" );

//关联

// [WCSPARAM WCSParam_Diff1 43 97279.0909680032fAADHQDpctVzzzzHDAAccpHfQtf]   Parameter {WCSParam_Diff1} created by Correlation Studio
 web_reg_save_param("WCSParam_Diff1",
  "LB=userSession value=",
  "RB=>",
  "Ord=1",
  "RelFrameId=1.2.1",
  "Search=Body",
  "IgnoreRedirections=Yes",
  LAST);
 web_url("WebTours",
  "URL=http://127.0.0.1:1080/WebTours/",
  "TargetFrame=",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=",
  "Snapshot=t1.inf",
  "Mode=HTML",
  LAST);
 lr_think_time(11);

lr_start_transaction("test");

//检查点
 web_reg_find("Text={findtext}",
  "Search=Body",
  LAST);

web_submit_data("login.pl",
  "Action=http://127.0.0.1:1080/WebTours/login.pl",
  "Method=POST",
  "TargetFrame=body",
  "RecContentType=text/html",
  "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
  "Snapshot=t2.inf",
  "Mode=HTML",
  ITEMDATA,
  "Name=userSession", "Value={WCSParam_Diff1}", ENDITEM,
  "Name=username", "Value={username}", ENDITEM,  //参数化登陆名称
  "Name=password", "Value=bean", ENDITEM,
  "Name=JSFormSubmit", "Value=off", ENDITEM,
  "Name=login.x", "Value=42", ENDITEM,
  "Name=login.y", "Value=13", ENDITEM,
  LAST);

lr_end_transaction("test", LR_AUTO);

return 0;
}

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

LoadRunner例子:检查点为参数的一个例子的更多相关文章

  1. Enumeration遍历http请求参数的一个例子

    Enumeration<String> paraNames=request.getParameterNames(); for(Enumeration e=paraNames;e.hasMo ...

  2. spring笔记--使用springAPI以及自定义类 实现AOP的一个例子

    Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们 ...

  3. C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介

    委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见 ...

  4. 从一个例子中体会React的基本面

    [起初的准备工作] npm init npm install --save react react-dom npm install --save-dev html-webpack-plugin web ...

  5. 对Jena的简单理解和一个例子

    本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...

  6. php部分--面向对象三大特性-封装(另加连续调用的一个例子)、继承(重写、重载的例子)、多态;

    一.封装性: 目的:为了使类更加安全. 做法:1设置私有成员 2在类中建方法,访问私有成员 3在方法里边加控制(if) 私有成员访问的两种方法: 方法一:set(可写) get(可读)做方法(可读可写 ...

  7. Spark小课堂Week7 从Spark中一个例子看面向对象设计

    Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...

  8. QDataStream类参考(串行化数据,可设置低位高位,以及版本号),还有一个例子

    QDataStream类提供了二进制数据到QIODevice的串行化. #include 所 有成员函数的列表. 公有成员 QDataStream () QDataStream ( QIODevice ...

  9. Webpack入门——使用Webpack打包Angular项目的一个例子

    2016.1.22,对大多数人来说,这是一个非常平常的日子,但这却是我决定在博客园写博客的日子.虽然注册博客园的博客已有4年8个月,却一直没有动手写过一篇博客,原因是觉得自己水平不行,写不出好东西,所 ...

随机推荐

  1. 9.3.2 The force and release procedural statements

    Frm: IEEE Std 1364™-2001, IEEE Standard Verilog® Hardware Description Language Another form of proce ...

  2. ubuntu 删除 mysql (转)

    1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 sudo apt-get ...

  3. 本地 win7 与虚拟机Centos7 ping互通和Centos7 上网设置

    VM 12 安装虚拟机我就不表示了 很简单网上找找 一 .虚拟机设置 1.修改使用了 VMWare 12 虚拟机,Oracle VM 用得有点晕 2.配置VM 的NET环境 3.在VMware虚拟机任 ...

  4. Python3入门机器学习经典算法与应用✍✍✍

    Python3入门机器学习经典算法与应用 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的 ...

  5. PAT L2-021. 点赞狂魔 /// sort+unique去重

    https://www.patest.cn/contests/gplt/L2-021 题目大意: 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞 ...

  6. Shell 学习(三)

    目录 Shell 学习(三) 流程控制 1 if判断 2 case 语句 3 for循环 4 while 循环 2 read 读取控制台输入 2.1 基本语法 2.2 应用实例 3 函数 3.1 系统 ...

  7. 2018-8-10-使用-IncrediBuild-提升-VisualStudio-编译速度

    title author date CreateTime categories 使用 IncrediBuild 提升 VisualStudio 编译速度 lindexi 2018-08-10 19:1 ...

  8. vim 底行模式 操作命令

    1. 当前设置行号: set nonu    取消行号显示:                    2.   :set number 显示行号     (下次使用就没有了,要设置脚本 vim ~/ . ...

  9. C(n,m)的奇偶性判断

    C(n,m)的奇偶性判断奇数:当且仅当(n&m)==m偶数:否则为偶数证明:根据卢卡斯定理,c(n,m)%2=c(n%2,m%2)*c((n>>1),(m>>1))%2 ...

  10. Windows shutdown

    用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f]    ...