Loadrunner:脚本编写通用模板(Http协议类型)

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("{存储匹配次数的变量名}"))>0)
    {
        // 事务成功
        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("{存储匹配次数的变量名}"))>0)
    {
        // 事务成功
        lr_end_transaction("事务名称", LR_PASS);
    }
else
    {
        // 事务失败
        lr_end_transaction("事务名称", LR_FAIL);
    }    

原文地址:https://www.cnblogs.com/yebaofang/p/10863833.html

时间: 2024-10-10 20:36:56

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

LoadRunner脚本编写(转)

性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了.还有非计算机专业出身的测试员,所以对代码望都比较望而生畏. 好多人认为loadrunner只支持C语言(包括我之前也一直这么认为),因为loadrunner默认的脚本是C语言的,其实它支持目前所有主流的语言,如:Java User.VB User.VB script User .Javascript User.Mmicroso

LoadRunner脚本编写之二

编程基本语法必须要记牢.程序的思想也很重要. 下面来回顾一下嵌套循环例子. Action() {     int  i,j;   //生命两个变量     for (i=1;i<=5;i++)   //第一重循环,循环5次     {         if (i==3)                break;   //当i等于3时,跳出本重循环         else              lr_output_message("i=%d",i);  //否则,输入i的值

使用泛型编写通用的C#预处理类型转换方法

废话 从.net3.5发布后,就很多前辈利用泛型创造出了很多很有趣的代码,通用的转换方法也被写的烂了,小弟不才,今天又来写一遍,只是为了做个人知识的管理和追赶大牛的步伐,请各位路过的大大多多批评指正. 思路 1.基本类型都实现了IConvertible这个接口 2.基本类型都实现了TryParse方法 实现 public static class Converter { /// <summary> /// 转换为其他继承IConvertible的类型 /// </summary>

【续】使用泛型编写通用的C#预处理类型转换方法(使用委托提高性能)

优化后的代码: public static class Converter { /// <summary> /// 转换为其他继承IConvertible的类型 /// </summary> /// <typeparam name="T">转换的类型</typeparam> /// <param name="value">要转换的值</param> /// <param name=&quo

loadrunner脚本编写经验

最近写了不少loadrunner脚本,记录一下心得:1 loadrunner脚本基本可以认为就是c语言代码(loadrunner支持不同语言的脚本,默认生成的是用c语言写的脚本)2 loadrunner自己实现了一个c编译器及对应的ide(也就是vugen),所以有一些地方跟我们常用的开发习惯不一样.loadrunner内置编译编译器怀疑是在gcc基础上改的,因为一些语法特性跟gcc比较像.3 loadrunner的c编译器实现了不少标准库函数,但不提供对应的头文件.所以使用到库函数(如mall

LoadRunner脚本编写

一.脚本编写 案例一 Action() { //请求1 web_custom_request("WebTours", //可以自定义 "URL=http://127.0.0.1:1080/WebTours/", //Get请求的地址 "Method=GET", //方式GET "Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源 "RecContentType=text/html&q

loadrunner脚本编写http协议

loadrunner - 脚本编写

### web_url ### 只支持 GET 请求 ### 一.General 1.Step:名称 2.URL:需要访问的 url 地址 3.Record mode:HTML / HTTP 二.Resource 1.Referer:来源请求,防盗链:即访问请求是从哪个请求链接过来的 例: web_url("web_url", "URL=https://api.douban.com/v2/book/search?q=python", "TargetFram

LoadRunner学习---脚本编写(4)(比较重要)

今天接着来翻译http://www.wilsonmar.com/中关于LoadRunner脚本编写部分,下面该翻译脚本编写中一些比较重要的部分了. Web用户Action 在VuGen中,脚本产生的默认模式是基于HTML的--“描述用户的动作的脚本”直接与用户的动作是对应的: * web_url是浏览器地址栏的URL. * web_link是点击在<a href= ...>和<a>之间的文本超链接. * web_image是点击HTML的<img href= link. *