1. 背景

对于 Http协议,Loadrunner 脚本可以使用通用模板反复粘贴,只需要修改其中的 URL 和 传参,就可以完成一整个业务

2. Get 类型的接口

web_custom_request(
  // 名称,最好用英文
  "Hello",
  // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
  "URL={appboss}/app/shopBuy/detail?tokenId={tokenId}",
  // 提交方式
  "Method=GET",
  "TargetFrame=",
  "Resource=1",
  // 返回内容定义的类型
  "RecContentType=application/json",
  "Referer=",
  // 请求内容定义的类型
  "EncType=application/x-www-form-urlencoded; charset=utf-8",
  LAST);

3. POST 类型接口

web_submit_data(
  // 名称,最好用英文
  "Hello",
  // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
  "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}",
  // 提交方式
  "Method=POST",
  "TargetFrame=",
  "Referer=1",
  // 返回内容定义的类型
  "RecContentType=application/json",
  "Referer=",
  "Mode=HTML",
  ITEMDATA,
  // 请求体内容
  "Name=传参的键", "Value=传参的值", ENDITEM,
  LAST);

4. 添加事务

事务是用来区分不同业务的,一个接口就可以用一个事务包含起来,方便统计

// 事务开始
lr_start_transaction("事务名称"); web_submit_data(
  // 名称,最好用英文
  "Hello",
  // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
  "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}",
  // 提交方式
  "Method=POST",
  "TargetFrame=",
  "Referer=1",
  // 返回内容定义的类型
  "RecContentType=application/json",
  "Referer=",
  "Mode=HTML",
  ITEMDATA,
  // 请求体内容
  "Name=传参的键", "Value=传参的值", ENDITEM,
  LAST); // 事务结束
lr_end_transaction("事务名称", LR_AUTO);

5. 添加断言

上面的脚本还缺少测试中最重要的一环,就是断言,判断执行的结果是否符合预期

// 事务开始
lr_start_transaction("事务名称"); // 这个需要放到Http请求前面,从结果中查找预期匹配内容
web_reg_find(
"SaveCount=存储匹配次数的变量名",
  // 想要匹配的内容
"Text=\"errorCode\" : \"200\",\n",
LAST); web_submit_data(
  // 名称,最好用英文
  "Hello",
  // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
  "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}",
  // 提交方式
  "Method=POST",
  "TargetFrame=",
  "Referer=1",
  // 返回内容定义的类型
  "RecContentType=application/json",
  "Referer=",
  "Mode=HTML",
  ITEMDATA,
  // 请求体内容
  "Name=传参的键", "Value=传参的值", ENDITEM,
  LAST); // 事务结束
// 根据匹配的数量进行判断事务是否成功
if(atoi(lr_eval_string("{存储匹配次数的变量名}"))>)
{
// 事务成功
lr_end_transaction("事务名称", LR_PASS);
}
else
{
// 事务失败
lr_end_transaction("事务名称", LR_FAIL);
}

6. 添加集合点

既然是做性能,自然少不了并发用的集合点

// 集合点,需要放在事务之前
lr_rendezvous("集合点名称"); // 事务开始
lr_start_transaction("事务名称"); // 这个需要放到Http请求前面,从结果中查找预期匹配内容
web_reg_find(
"SaveCount=存储匹配次数的变量名",
  // 想要匹配的内容
"Text=\"errorCode\" : \"200\",\n",
LAST); web_submit_data(
  // 名称,最好用英文
  "Hello",
  // 接口的 URL,建议 appboss 地址设置成变量,方便切换环境
  "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}",
  // 提交方式
  "Method=POST",
  "TargetFrame=",
  "Referer=1",
  // 返回内容定义的类型
  "RecContentType=application/json",
  "Referer=",
  "Mode=HTML",
  ITEMDATA,
  // 请求体内容
  "Name=传参的键", "Value=传参的值", ENDITEM,
  LAST); // 事务结束
// 根据匹配的数量进行判断事务是否成功
if(atoi(lr_eval_string("{存储匹配次数的变量名}"))>)
{
// 事务成功
lr_end_transaction("事务名称", LR_PASS);
}
else
{
// 事务失败
lr_end_transaction("事务名称", LR_FAIL);
}

Loadrunner:脚本编写通用模板(Http协议类型)的更多相关文章

  1. LoadRunner脚本编写(转)

    性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了.还有非计算机专业出身的测试员 ...

  2. LoadRunner脚本编写

    性能測试project师要懂代码么?答案是必须的.好多測试员觉得在loadrunner中编写脚本非常难非常牛X ,主要是大多測试人员并未做过开发工作,大学的那点程序基础也忘记的几乎相同了. 还有非计算 ...

  3. LoadRunner脚本编写之二

    LoadRunner脚本编写之二 编程基本语法必须要记牢.程序的思想也很重要. 下面来回顾一下嵌套循环例子. Action() {     int  i,j;   //生命两个变量     for ( ...

  4. LoadRunner脚本编写(5)-- 检查点,关联等函数

    LoadRunner脚本编写(5)-- 检查点,关联等函数 http://www.51testing.com/?34866/action_viewspace_itemid_70224.html来继续翻 ...

  5. LoadRunner脚本编写(6)— 数据类型转换和字符串操作

    LoadRunner脚本编写(6)— 数据类型转换和字符串操作 一,数据类型转换 没有使用过C编程的LoadRunner脚本编写者会发现在数据类型转化方面比较困难.下面介绍这方面的知识. 1. 相似函 ...

  6. LoadRunner脚本编写之三(事务函数)

    LoadRunner脚本编写之三(事务函数) 关于脚本的这块,前两篇都在讲C语言,其实,要整理点实用的东西挺难,在应用中多对录制的脚本分析,但对于新手学脚本确实无从下手. 先贴一个脚本: 完整代码: ...

  7. LoadRunner脚本编写之一

    LoadRunner脚本编写之一 性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不 ...

  8. loadrunner脚本编写经验

    最近写了不少loadrunner脚本,记录一下心得:1 loadrunner脚本基本可以认为就是c语言代码(loadrunner支持不同语言的脚本,默认生成的是用c语言写的脚本)2 loadrunne ...

  9. loadrunner脚本编写http协议

随机推荐

  1. 最新 鹏博士java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.鹏博士等10家互联网公司的校招Offer,因为某些自身原因最终选择了鹏博士.6.7月主要是做系统复习.项目复盘.LeetCo ...

  2. 解决从github上下载代码仓库慢的问题

    一,打开命令提示符,最好之前准备一个仓库地址,这样下载下来的文件方便查看,这里打开你想要的下载根目录,进行下载. github上下载代码仓库慢的问题"> 二:复制代码仓库的地址 三:右 ...

  3. 【leetcode算法-简单】1.两数之和

    [题目描述] 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  4. SQL SERVER 字符串函数 STRING_SPLIT()

    定义: STRING_SPLIT()函数根据指定的分隔符将字符串拆分为子字符串行. ※STRING_SPLIT 要求兼容性级别至少为 130. (即SSMS 2016及以上版本) ※级别低于 130 ...

  5. Centos安装elasticsearch,php连接使用

    一.下载安装JAVA 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...

  6. fiddler笔记:Composer选项卡

    1.Composer选项卡介绍 Composer选项卡功能是可以手动构建和发送HTTP.HTTPS和FTP请求. 支持将Web Session列表中选中的Session拖入Composer选项卡,然后 ...

  7. StorageClass-动态PVC

    StorageClass 之前我们部署了PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上 ...

  8. Codeforces 1097E. Egor and an RPG game

    传送门 首先考虑怎么算 $f(n)$ (就是题目里面那个 $f(n)$) 发现可以构造一组序列大概长这样: ${1,3,2,6,5,4,10,9,8,7,15,14,13,12,11,...,n(n+ ...

  9. poj 3468 整理一下线段树的写法

    // 对于延迟更新,我们在updata 和query的时候 pushdown和pushup两个东西都要存在 #include <iostream> #include <cstdio& ...

  10. vc 网络编程(socket)

    在网上找了很多的资料,现将这些资料整合起来,详细介绍一下VC下的socket编程,并提供一个服务器客户端具体的实例.希望对您有所帮助 一.原理部分 (个人觉得这篇写的可以,所以转与此,原文地址:htt ...