Loadrunner测试json接口实例以及 web_custom_request 函数详解
来源:互联网 发布:anaconda与python版本 编辑:程序博客网 时间:2024/05/21 17:02
1. loadrunner + json说明
使用lr测试json接口,向服务端发送json格式请求,接收处理返回响应数据。
主要用到函数:
1)web_custom_request
2)web_reg_save_param (此函数常用户处理动态参数,该方法在LoadRunner中被称为Correlation(关联))
2. web_custom_request 参数说明
Int web_custom_request (const char *RequestName, <List of Attributes>,[EXTRARES, <List of Resource Attributes>,] LAST );
返回值:
LR_PASS(0)代表成功
LR_FAIL(1)代表失败。
参数:
1、RequestName:步骤的名称,VuGen中树形视图中显示的名称。
2、List of Attribute:支持的属性有以下几种:
1)URL:页面地址。2)Method :页面的提交方式,POST或GET。
3)EncType:编码类型。此参数给出一个内容类型(Content-Type),指定其做为回放脚本时“Content-Type”请求头的值,例如“text/html”。
4)BodyFilePath: 作为请求体传送的文件的路径。
5)UserAgent:用户代理,它是一个HTTP头的名字,用来标识应用程序,通常是浏览器,它呈现的是用户和服务器的交互。
6)Binary: “Binary=1”表示页面请求体中的每一个以file://x/##形式出现的值(在这里“##”代表2个十六进制数字),都会被替换为单字节的十六进制的值。
7)ContentEncoding:指定请求体的使用指定的方式(gzip或者deflate)进行编码(例如,压缩),相应的“Content-Encoding:” HTTP头会和此请求一起发送。这个参数适用于web_custom_request和web_submit_data。
8)FtpAscii:“1”使用ASCII模式处理FTP操作;"0" 使用二进制模式。
9)TargetFrame:当前链接或资源所在Frame的名称。除了Frame的名字,还可以指定下面的参数:
_BLANK:打开一个空窗口。
_PARENT:把最新更改过的的Frame替换为它的上级。
_SELF:替换最新更改过的的Frame。
_TOP:替换整个页面。
10)RecContentType: 录制脚本时响应头的内容类型。例如text/html、 application/x-JavaScript等。当没有设置Resource属性时,用它来确定目标URL是否是可记录的资源。此属性包含主要的和次要的资源。最频繁使用的类型是 text、application、image。次要的类型根据资源不同变化很多。例如:"RecContentType=text/html":表示html文本。"RecContentType=application/msword":表示当前使用的是Msword。
11)Referer: 当前页面关联的页面。如果已经显式指定了url的地址,此项可以省略。
12)Resource: 指示URL是否属于资源。1 是;0 不是。设置了这个参数后,RecContentType参数被忽略。
13)ResourceByteLimit: web页面下载资源的极限大小。
14)Snapshot: 快照的文件名。
15)Mode: 两种录制级别HTML、HTTP。HTML级别--在当前Web界面上录制直观的HTML动作。以一步步的web_url、web_link、web_image、web_submit_form来录制这些动作。
16)ExtraResBaseDir:根URL,放在EXTRARES组里。
17)Body: 请求体。不同的应用中,请求体分别通过Body、BodyBinary或者BodyUnicode参数来传递。请求体可以只使用其中一个参数,也可以使用一连串的分开的参数组成多请求体。注意:如果请求体大于100K,会使用一个变量来代替Body参数。变量是在 lrw_custom_body.h中定义的。
18)Raw Body: 请求体是作为指针传递的,此指针指向一串数据。
3、EXTRARES:表明下面的参数将会是List Of Resource Attributes了。
4、LAST :结尾的标示符。
5、List of Resource Attributes
仅仅当Recording Options--Recording --HTML-based script-- Record within the current script step选项被选中时,List of Resource Attributes才会被插入到代码中。Web页面中的非HTML机制产生了资源列表,包含了Javascript, ActiveX, Java applets and Flash所请求的资源。VuGen's 的Recording 选项中,可以设置把这些资源录制在当前的操作中(默认是此设置)还是作为单独的步骤来录制。
3. 具体实例如下(包含发送json,获取响应数据,设置关联、设置检查点):
/* 定义事务: 1)用户注册 2)用户登录 3)用户签到 接口为:application/json 思路: 1)app注册,获到mobile 2)使用获取到的mobile登录,获取tokenid和userid。 参数化:手机号码、设备号 */Action(){ //定义接口url char *Interface_Url; lr_save_string("http://192.168.0.1:8080/action.a","Interface_Url"); //注册事务开始 lr_start_transaction("用户注册"); lr_rendezvous("register"); //检查用户是否注册成功 web_reg_find("Search=Body", "Text=createTime", "SaveCount=createTime", LAST); //web_set_max_html_param_len("10000000"); //获取用户注册后响应数据,并传给mobile web_reg_save_param("mobile", "LB=\"mobile\":\"", //设置左边界 "RB=\",", //设置右边界 "Ord=1", "Notfound=empty", "Search=Body", LAST); web_custom_request("register", "Url={Interface_Url}", //设置url "Method=POST", //设置方法,post或get "Mode=HTTP", "EncType=application/json", //编码类型 "RecContentType=application/json", "Body={\"c\":\"1001\",\"p\":{\"code\":\"9051\",\"mobile\":\"{phone}\",\"pwd\":\"123456\",\"model\":\"{model}\",}}", //请求主体,json格式,分号前需要加斜杠 LAST); lr_vuser_status_message("注册事务,虚拟用户数 #%s",lr_eval_string("{phone}")); lr_end_transaction("用户注册",LR_AUTO); //登录事务开始 lr_start_transaction("用户登录"); lr_rendezvous("login"); web_reg_find("Search=Body", "Text=lastLoginTime", "SaveCount=lastLoginTime", LAST); //获取用户登录后响应数据tokenId,并传给pdl_dynamic_tokenId web_reg_save_param("pdl_dynamic_tokenId", "LB=\"tokenId\":\"", "RB=\"", "Ord=1", "Notfound=empty", "Search=Body", LAST); //从用户登录响应数据中,获取pdl_user_id web_reg_save_param("pdl_user_id", "NotFound=warning", "LB=\"id\":", "RB=,\"inviteCode", "Ord=1", "Search=Body", LAST); web_custom_request("login", "Url={Interface_Url}", "Method=POST", "Mode=HTTP", "EncType=application/json", "RecContentType=application/json", "Body={\"c\":\"1002\",\"p\":{\"mobile\":\"{pdl_mobile}\",\"pwd\":\"123456\"}}", LAST); lr_end_transaction("用户登录",LR_AUTO); //用户签到 lr_start_transaction("用户签到"); lr_rendezvous("Sign_in"); web_reg_find("Search=Body", "Text=signDate", "SaveCount=signDate", LAST); web_custom_request("pdl_Sign_in", "Url={Interface_Url}", "Method=POST", "Mode=HTTP", "EncType=application/json", "RecContentType=application/json", "Body={\"c\":\"1014\",\"p\":{\"userId\":\"{pdl_user_id}\",\"tokenId\":\"{pdl_dynamic_tokenId}\"}}", LAST); lr_end_transaction("用户签到",LR_AUTO); return 0;}整合链接:
http://www.cnblogs.com/smstars/p/5098663.html
http://blog.csdn.net/dongmu1986/article/details/24380941
0 0
- Loadrunner测试json接口实例以及 web_custom_request 函数详解
- LoadRunner函数详解之web_custom_request
- 利用web_custom_request函数进行接口测试
- Loadrunner测试json接口
- web_custom_request函数实例
- web_custom_request 函数详解
- web_custom_request函数语法详解
- loadrunner之 学习四:web_custom_request()函数
- LoadRunner(三)再识web_custom_request函数
- loadrunner Web_类函数之web_custom_request()
- Loadrunner模拟JSON接口请求进行测试
- Loadrunner模拟JSON接口请求进行测试
- Loadrunner模拟JSON接口请求进行测试
- Loadrunner模拟JSON接口请求进行测试
- Loadrunner http JSON接口请求进行测试
- Loadrunner模拟JSON接口请求进行测试
- Loadrunner模拟JSON接口请求进行测试
- Loadrunner Http Json接口压力测试
- 你也可以掌控EMI:EMI基础及无Y电容手机充电器设计
- java正则表达式教程(翻译)
- enumGroup函数
- 数列求和 S=A+AA+AAA+...
- java创建数组,实现增删改查
- Loadrunner测试json接口实例以及 web_custom_request 函数详解
- linux rar和zip工具
- 键盘return按键及事件
- DownLoadManager解析
- oracle中int与number的区别
- BZOJ 1176: [Balkan2007]Mokia【CDQ分治+树状数组
- 模拟哈希(开放地址法)
- Linux System and Performance Monitoring(CPU篇)
- PHP 四舍五入函数 round()