LR手工制作webServices接口类脚本

首先通过抓包获得某个接口的码流消息,请求报文码分消息头和消息体,所以在制作脚本的时候也需要添加消息头和消息体。

POST /jboss-bet/services/&** HTTP/1.1
SOAPAction: ""
Content-Type:text/xml; charset=utf-8
Host: 10.0.0.0:8080
Connection: close
Content-Length:1004

<?xml version="1.0" encoding="utf-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc>
<soapenv:Body>
<ns1:请求 xmlns:ns1="http://ww.***.com">
<event>
<portalAccount xsi:type="xsd:string">admin</portalAccount>
<portalPwd xsi:type="xsd:string">123456</portalPwd>
</event>
</ns1:**>
</soapenv:Body>
</soapenv:Envelope>

消息头可以用web_add_header或者是web_add_auto_header函数来添加,2个函数只是位置不同,web_add_auto_header可以放在 init或者action里面,而web_add_header只能放在action里

web_add_header("Content-Type","text/xml;charset=utf-8");
web_add_header("Host","10.0.0.0:8080");

而消息体可以用web_custom_request函数来添加

web_custom_request("**",--自定义请求名称,便于理解
"URL=http://10.0.0.0/8080/jboss-bet/services/&**",
"Method=POST",
"Resource=0",
"Referer=",
"Mode=HTTP",
"Body"
--消息体
"<?xml version= \"1.0\" encoding=\"utf-8\" ?>"
"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:soapenc>"
"<soapenv:Body>"
"<ns1:** xmlns:ns1=\"http://ww.***.com\">"
"<event>"
"<portalAccount xsi:type=\"xsd:string\">admin</portalAccount>"
"<portalPwd xsi:type=\"xsd:string\">123456</portalPwd>"
"</event>"
"</ns1:**>"
"</soapenv:Body>"
"</soapenv:Envelope>"

这里要注意的是 消息体,在消息码流的引号“”,在loadrunner中并不识别,必须在引号前面加上\符号,也就是这种形式:\“\”。
至此,脚本就算制作完了。

再来讲一下关联

web_reg_save_param("Miyi","LB=<returnCode>","RB=</returnCode>",LAST);

这就是个简单关联,它关联的是什么呢?

看报文都知道,请求后面跟相应,而LR模拟的是请求,但往往很多时候,一次请求后下一次请求需要根据第一次请求给出相应的动态码进行第二次请求,所以这时候我们就用到了关联。看下面这个例子:

lr_output_message(lr_eval_string("{Miyi}"));
       if (strcmp(lr_eval_string("{Miyi}"), "00000") == 0){
            lr_end_transaction("login",LR_PASS);
               }
        else{
           lr_end_transaction("login", LR_FAIL);
        }

还可以用关联写一个检查点,你也可以试试吧。

再加一个检测点:

web_reg_find("Text=wangyuxing",
"SaveCount=yw",
LAST);

怎么判断呢?

if(atoi(lr_eval_string("{yw}"))>0){
          lr_output_message("wangyong :  ok  !");
                }
        else{
          lr_output_message("wangyong :  no   !");
                }

(转自http://www.cnblogs.com/Javame/archive/2013/03/18/2965588.html)

时间: 2024-11-05 20:47:44

LR手工制作webServices接口类脚本的相关文章

c# 动态调用.net编写的webservices接口

c# 动态调用.net编写的webservices接口 创建类WebServiceHelper: public class WebServiceHelper { #region 动态调用WebService动态调用地址 /// < summary> /// 动态调用web服务 /// < /summary> /// < param name="url">WSDL服务地址< /param> /// < param name="

MyBatis Spring整合配置映射接口类与映射xml文件

Spring整合MyBatis使用到了mybatis-spring,在配置mybatis映射文件的时候,一般会使用MapperScannerConfigurer,MapperScannerConfigurer会自动扫描basePackage指定的包,找到映射接口类和映射XML文件,并进行注入.配置如下: [html] view plain copy <!-- 数据源 --> <bean id="dataSource" class="com.mchange.v

类,抽象基类,接口类三者间的区别与联系(C++)

联系很明显,三个都是‘类’,如果读者对类的概念不清楚,可以参照wid的博文http://www.cnblogs.com/mr-wid/archive/2013/02/18/2916309.html. 下面着重解释一下区别,但此文仅是个人理解,如果觉得我说的不对的地方,还请赐教. (1)结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) (2)概念上的区别: 普通的类和另外两个的区别很明显,普通类就是猫狗之类的,而抽象类

常用设备接口类GUID

转载:http://blog.csdn.net/jhqin/article/details/6775321 注意:在VC中使用这些常量名称时,除了包含相应的头文件外,还需要预先包含initguid.h头文件.即: [cpp] view plaincopy #include <initguid.h> 常用设备接口类GUID Identifier Class GUID Header GUID_DEVINTERFACE_USB_DEVICE {A5DCBF10-6530-11D2-901F-00C0

在C++中定义接口类,在C#中实现

网上大部分都是C#调用C++的接口,很少有C++调用C#的,更少有在C++中定义接口类,在C#中实现. 千辛万苦,终于找到一个网址:http://www.tuicool.com/articles/AFjY7j 简单翻译一下, class __declspec(dllexport) CSimpleClass { public: int value; CSimpleClass(int value) : value(value) { } ~CSimpleClass() { printf("~CSimp

PHP中的特殊类,接口类和抽象类(都不能直接实例化)

接口类不用实例化,需要一一实现接口定义的所有方法.关键字interface implements 接口interface 是一个规定,给人继承用的东西,有点像抽象类在里面定义的方法,却不去实例化,而需要别的类去implements 它,而且必须一一实现接口定义的所有方法, 实际上接口类说白了,就是一个类的模板,一个类的规定, 举个例子interface Shop { public function buy($gid); public function sell($gid); public fun

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错. (异常来 自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY)) 经过多般折腾,还是没什么更好的办法.

IO包DataInput接口类图

当我决定要依次按照接口的划分来画类图时,便自发提出了这样一个问题.  以组件内指定的某个接口为起点,是不是其所有的实现类.扩展接口.扩展抽象类以及他们的关联类都详尽地罗列出来?   首先,这是我第一次尝试从众多代码中梳理类的关系.画此接口类图的意义不在于能否一次性地看到满意的效果,而是在于得到分析的经验并总结方法.所以,我不知道这样做是不是合理或者是最佳的(比如可读性),唯一能做的似乎只能是罗列其有关的一切,然后看它到底是个什么样子.确实贯彻了这一唯一的选择,把有关的一切全部画了出来.虽然之后我

php 接口类与抽象类的实际作用

1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 : interface Shop { public function buy($gid); public function sell($gid); public function view($gid); } 我声明一