只需根据接口文档,就能轻松开发 get 和 post 请求的脚本,你会做吗?
![](https://img.shuduke.com/static_img/cnblogs/80/vnsvzggs_68g6.webp)
一般的接口文档描述的内容:
![](https://img.shuduke.com/static_img/cnblogs/80/asdetuxj_88o1.webp)
开发get请求的脚本,接口文档的描述如下:
![](https://img.shuduke.com/static_img/cnblogs/80/dlnshkmc_ylx6.webp)
在loadrunner里面创建一个空脚本:
![](https://img.shuduke.com/static_img/cnblogs/80/rhtupgde_3uxv.webp)
在action空白处,点击insert—>step
![](https://img.shuduke.com/static_img/cnblogs/80/xpifgeno_g9sz.webp)
输入web_custom_request,双击选择该函数,填入如下几个参数值:
![](https://img.shuduke.com/static_img/cnblogs/80/vbgjicdj_jqc5.webp)
生成的脚本如下:
![](https://img.shuduke.com/static_img/cnblogs/80/lmeirbsx_ymlq.webp)
运行编译,看有没有语法错误:
在日志里面看到返回了code=0,说明接口请求是成功的,在这里不要关注返回的乱码信息
![](https://img.shuduke.com/static_img/cnblogs/80/rquigspk_uvpa.webp)
是不是觉得get请求的脚本很容易搞定了,接下来看post请求的,还是用上面的函数完成。
用post请求开发登录接口的脚本:文档说明如下,参数很少。
![](https://img.shuduke.com/static_img/cnblogs/80/ecjljxpz_w8i4.webp)
填入如下的值:
![](https://img.shuduke.com/static_img/cnblogs/80/olcbwwop_9yqt.webp)
生成的脚本内容如下:
![](https://img.shuduke.com/static_img/cnblogs/80/nwpqzpze_uaxp.webp)
编译运行脚本,看日志信息:日志级别需要调整到如下级别
![](https://img.shuduke.com/static_img/cnblogs/80/szztxspj_8oy0.webp)
![](https://img.shuduke.com/static_img/cnblogs/80/cekkgxez_9mjl.webp)
脚本都已经成功开发完了,那么是不是有一个问题?在跑场景的时候,怎么知道我的脚本一直都是成功的呢?
是不是有一些小伙伴在平时的脚本运行的时候,脚本都没有报错,但是实际插入到数据库的数据没有增加的情况?
这个问题肯定很多小伙伴都遇到过,那怎么办呢?
就是需要对脚本的返回值进行if判断,当成功的时候,就pass,失败了就fail,这样事务也会自动的去统计成功或失败
- 先来在脚本中添加事务
开始事务
![](https://img.shuduke.com/static_img/cnblogs/80/mwwofzrz_de44.webp)
结束事务
![](https://img.shuduke.com/static_img/cnblogs/80/uscfntag_1423.webp)
- if判断要怎么写呢?
回到刚才回放的日志里面,用之前讲过的关联的方法,双击code=0这一行
![](https://img.shuduke.com/static_img/cnblogs/80/qozdiaee_ylax.webp)
![](https://img.shuduke.com/static_img/cnblogs/80/rtoeyhqq_wcl7.webp)
web_reg_save_param("code", //变量的名称
"LB=\"code\":", //左边界值,双引号需要加上转义符
"RB=,", //右边界值
"Ord=1", //多个值时,取第几个
LAST);
这里再教大家一个方法,进入到loadrunner的帮助文档,查看每个函数的使用,loadrunner界面,按下键盘的F1,在输入框输入函数名称,比如atoi
![](https://img.shuduke.com/static_img/cnblogs/80/kzoifljr_2phv.webp)
当有多个示例的时候,HTTP协议的选择C语言
![](https://img.shuduke.com/static_img/cnblogs/80/omdetlah_pzyh.webp)
![](https://img.shuduke.com/static_img/cnblogs/80/rppvhsnf_z949.webp)
判断如下:
// 写if判断
// int atoi( 需要转换成整型的字符 ); //把指定的字符转换成整型
// char *lr_eval_string( 当前想要获取的参数名 ); // 获取指定的当前参数的值
if(atoi(lr_eval_string("{code}"))==0) { //当code=0的时候,事务是成功的
lr_end_transaction("login", LR_PASS);
} else { //当code不等于0的时候,事务是失败的
lr_end_transaction("login", LR_FAIL);
} 运行脚本,在日志里面可以看到pass信息
![](https://img.shuduke.com/static_img/cnblogs/80/mhlunvrp_gupo.webp)
总结
目前已经学习了几个常用的请求函数,作用如下:
- Web_url:只能用于get请求
- Web_submit_data:get,post,提交form表单
- Web_custom_request:即可用于get,也可用于post请求,post请求是标准的json串