Loadrunner开发测试脚本

开发测试脚本可以通过录制,也可以手动开发,建议能录制的尽量录制,省时省力,不能录制的只能费力自己开发了,具体看项目情况来决定。

使用Loadrunner开发脚本过程中和Jmeter一样,需要了解HTTP传输原理,使用Fiddler等工具进程抓包,根据请求信息编写请求表单,根据响应信息判断返回值做关联处理,在Action中插入->新建步骤中添加需要的函数,设置请求参数来逐步完成每个请求。

在开发流程测试脚本过程中,往往需要将上一个请求的返回值作为下个请求的参数,这时候需要用到关联,很多时候Loadrunner自动关联不是万能的,需要我们自己定义关联提取出需要的信息,以下为关联部分脚本:

Action()

{

lr_start_transaction("打开登陆页");

web_url("web_url",

"URL={URL}/user/login.html",

"TargetFrame=",

"Resource=0",

"Referer=",

LAST);

lr_end_transaction("打开登陆页", LR_AUTO);

lr_start_transaction("提交登陆表单");

web_submit_data("web_submit_data",

"Action={URL}/user/login.do",

"Method=POST",

"TargetFrame=",

"Referer=",

ITEMDATA,

"Name=acct", "Value={username}", ENDITEM,

"Name=beforeURL", "Value=", ENDITEM,

"Name=password", "Value={password}", ENDITEM,

"Name=verifyCode", "Value=1234", ENDITEM,

LAST);

lr_end_transaction("提交登陆表单", LR_AUTO);

lr_start_transaction("出借列表");

web_url("web_url",

"URL={URL}/front/investmentList.html",

"TargetFrame=",

"Resource=0",

"Referer=",

LAST);

lr_end_transaction("出借列表", LR_AUTO);

//提取“去出借”请求的“loanId”参数,在“出借”请求中调用;

web_reg_save_param("loanId",

"LB=type=\"hidden\" id=\"loanId\" value=\"",

"RB=\"/>",

LAST);

lr_start_transaction("去出借");

web_url("web_url",

"URL={URL}/loanObject/2220003.html",

"TargetFrame=",

"Resource=0",

"Referer=",

LAST);

lr_end_transaction("去出借", LR_AUTO);

//以下为提取“出借”请求的关联,在“出借跳转”请求参数中调用;

web_reg_save_param("functionNum",

"LB=functionNum\\\":\\\"",

"RB=\\\",\\\"orderId",

LAST);

web_reg_save_param("orderId",

"LB=orderId\\\":\\\"",

"RB=\\\"",

LAST);

web_reg_save_param("ordDate",

"LB=ordDate\\\":\\\"",

"RB=\\\"",

LAST);

web_reg_save_param("investorId",

"LB=investorId\\\":\\\"",

"RB=\\\"",

LAST);

web_reg_save_param("borrowerId",

"LB=investorId\\\":\\\"",

"RB=\\\"",

LAST);

web_reg_save_param("fullAmount",

"LB=fullAmount\\\":",

"RB=,\\",

LAST);

web_reg_save_param("amount",

"LB=amount\\\":",

"RB=,\\",

LAST);

web_reg_save_param("signStr",

"LB=signStr\\\":\\\"",

"RB=\\\"",

LAST);

web_reg_save_param("freezeOrdId",

"LB=freezeOrdId\\\":\\\"",

"RB=\\\"",

LAST);

lr_start_transaction("出借");

web_submit_data("web_submit_data",

"Action={URL}/loanObject/invest.do",

"Method=POST",

"RecContentType=application/json",

"TargetFrame=",

"Referer=",

ITEMDATA,

"Name=loanId", "Value={loanId}", ENDITEM,

"Name=amount", "Value=100", ENDITEM,

LAST);

lr_end_transaction("出借", LR_AUTO);

lr_start_transaction("出借跳转");

web_submit_data("web_submit_data",

"Action={URL}/intf/bid.do",

"Method=POST",

"EncodeAtSign=YES",

"TargetFrame=",

"Referer=",

"Mode=HTML",

ITEMDATA,

"Name=jsonDataString", "Value={\"functionNum\":\"{functionNum}\",\"orderId\":\"{orderId}\",\"ordDate\":\"{ordDate}\",\"investorId\":\"{investorId}\",\"borrowerId\":\"{borrowerId}\",\"loanId\":\"{loanId}\",\"amount\":{amount},\"fullAmount\":{fullAmount},\"fee\":0.00,\"feeRate\":1.00,\"terminal\":\"pc\",\"maxTenderRate\":0.5,\"isFreeze\":\"Y\",\"freezeOrdId\":\"{freezeOrdId}\",\"signStr\":\"{signStr}\"}", ENDITEM,

LAST);

lr_end_transaction("出借跳转", LR_AUTO);

return 0;

}

提取数据根据请求响应信息的格式编写关联脚本,如抓包响应信息如下:

提取orderId参数的关联脚本为:

web_reg_save_param("orderId",

"LB=orderId\\\":\\\"",

"RB=\\\"",

LAST);

脚本调试过程中,根据脚本调试的目的来选取回放日志的类型,如果要查看提交表单请求的参数信息,选择扩展日志的高级跟踪:

如果要查看关联提取值是否正确,选择扩展日志的参数替换;

Loadrunner开发测试脚本的更多相关文章

  1. myeclipse调用loadrunner函数开发测试脚本

    myeclipse调用loadrunner函数开发测试脚本 一.使用myeclipse开发性能测试脚本 1.使用Eclipse新建一个Java工程,将目录%LoadRunner_Home%\class ...

  2. LoadRunner Vuser测试脚本添加前置条件举例

    调用接口前需要先获取登陆token,放入消息头中. /* * LoadRunner Java script. (Build: 3020) * * Script Description: 接口性能测试脚 ...

  3. loadrunner创建测试脚本运行无响应 不记录脚本

    解决一运行User Generator直接程序卡死无响应的办法. (1)“我的电脑”点右键->属性->高级 点选“性能”中的“设置” (2)打开对话框后,进入“数据执行保护”,如果空白框中 ...

  4. Postman—测试脚本

    前言 对于Postman中的每个请求,我们都可以使用JavaScript语言来开发测试脚本.这也就好比单元测试.我们先看看Postman的相关界面: 编写测试脚本 Postman测试脚本本质上是在发送 ...

  5. Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本

    脚本开发-利用Loadrunner生成Web service测试脚本 1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“ ...

  6. (转载)loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写

    原文出处:http://ajita.iteye.com/blog/1728243/ 先说明一下,本人是开发,对测试不是特别熟悉,但因工作的需要,也做过一些性能测试方面的东西.比较久之前很简单的用过,最 ...

  7. Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本

    脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...

  8. 开发测试技巧|辅助开发调试:goolge浏览器利用F12在控制台输入脚本实现表单自动填充

    一个开发测试技巧的指引和截图,利用google浏览器的F12调试和Console执行,注入JavaScript脚本实现表单的自动填充和测试. 原文链接: http://www.lookdaima.co ...

  9. 【JMeter4.0学习(五)】JMeter对服务器监控测试脚本开发

    目录: 下载相关JMeter插件 服务器监控测试脚本开发 附:参考相关文档 本文主要来说一下如何通过JMeter插件来监控服务器CPU.内存.磁盘.网络等相关资源. 一.首先,需要下载相关JMeter ...

随机推荐

  1. HTML 代码复用实践 (静态页面公共部分提取复用)

    原文:HTML 代码复用实践 上面的链接里面安装配置步骤已经非常详细,这里主要记录我操作过程中遇到的几个问题 gulp-file-include 的使用     按上面的步骤安装之后,node_mod ...

  2. Adaptive Decontamination of the Training Set: A Unified Formulation for Discriminative Visual Tracking

    Martin Danelljan 判决类追踪模型是由训练样本学习得到,但是为了适应目标和背景的变化sample set在每一帧中都会更新. 令(xjk, yjk)表示第k帧k={1,2,...,t}中 ...

  3. gcc警告: warning: dereferencing type-punned pointer will break strict-aliasing rules

    Q: 在高优化级别下,不同类型指针之间的强制类型转换可能会触发以下警告: warning: dereferencing type-punned pointer will break strict-al ...

  4. Django+uwsgi+Nginx安装部署

    安装 安装Nginx Nginx是最流行的高性能HTTP服务器. 安装pcre: wget https://sourceforge.net/projects/pcre/files/pcre/8.37/ ...

  5. My Construct

    1.构造函数定义 类中的构造函数用来初始化一个类.构造函数为公有类型,无返回值,用来从类实例中访问类时初始化此类的私有变量. 2.代码 public class UseConstruct { publ ...

  6. Windows服务定时执行方式

    采用System.Timers.Timer 间隔固定时间执行 方式一:间隔固定的时间执行一次,关键代码: protected override void OnStart(string[] args) ...

  7. sqlserver2008 创建定时任务

    SQL2008如何创建定时作业?此方法也适应于Sql Server2005数据库,有兴趣的可以来看下! 1.打开[SQL Server Management Studio],在[对象资源管理器]列表中 ...

  8. python字符串的编码格式

    参考网站: http://www.cnblogs.com/siqi/archive/2012/11/10/2763598.html 环境: win7 x64 python v2.7.10 结论: 1 ...

  9. mysql数据库的一些基本操作

    下面列出一些做项目时常用到的一些mysql操作. 1.对数据库的操作 查看所有的数据库:show databases; 新建一个数据库:create database database_name; 此 ...

  10. Spring in action - 会话管理

    传统的会话管理是用一个session表保存会话信息,每次请求时读取.写入该表. public function read($sessID) { $hander = is_array($this-> ...