只需根据接口文档,就能轻松开发 get 和 post 请求的脚本,你会做吗?

一般的接口文档描述的内容:

开发get请求的脚本,接口文档的描述如下:

在loadrunner里面创建一个空脚本:

在action空白处,点击insert—>step

输入web_custom_request,双击选择该函数,填入如下几个参数值:

生成的脚本如下:

运行编译,看有没有语法错误:
在日志里面看到返回了code=0,说明接口请求是成功的,在这里不要关注返回的乱码信息

是不是觉得get请求的脚本很容易搞定了,接下来看post请求的,还是用上面的函数完成。
用post请求开发登录接口的脚本:文档说明如下,参数很少。

填入如下的值:

生成的脚本内容如下:

编译运行脚本,看日志信息:日志级别需要调整到如下级别


脚本都已经成功开发完了,那么是不是有一个问题?在跑场景的时候,怎么知道我的脚本一直都是成功的呢?
是不是有一些小伙伴在平时的脚本运行的时候,脚本都没有报错,但是实际插入到数据库的数据没有增加的情况?
这个问题肯定很多小伙伴都遇到过,那怎么办呢?
就是需要对脚本的返回值进行if判断,当成功的时候,就pass,失败了就fail,这样事务也会自动的去统计成功或失败
- 先来在脚本中添加事务
开始事务

结束事务

- if判断要怎么写呢?
回到刚才回放的日志里面,用之前讲过的关联的方法,双击code=0这一行


web_reg_save_param("code", //变量的名称
"LB=\"code\":", //左边界值,双引号需要加上转义符
"RB=,", //右边界值
"Ord=1", //多个值时,取第几个
LAST);
这里再教大家一个方法,进入到loadrunner的帮助文档,查看每个函数的使用,loadrunner界面,按下键盘的F1,在输入框输入函数名称,比如atoi

当有多个示例的时候,HTTP协议的选择C语言


判断如下:
// 写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信息

总结
目前已经学习了几个常用的请求函数,作用如下:
- Web_url:只能用于get请求
- Web_submit_data:get,post,提交form表单
- Web_custom_request:即可用于get,也可用于post请求,post请求是标准的json串