loadrunner之脚本篇——将内容保存为参数
在VuGen中默认使用{}的字符串称为参数
注意:参数必须在双引号中才能用
将字符串保存为参数
lr_save_string("string you want to save", "arg_name");
举例:用参数来替换需要打开的url链接
Action2()
{
lr_save_string("http://172.25.75.2:1080/WebTours/", "web_site");
//打开登录页面
web_url("WebTours",
"URL = {web_site}", //运行出错//改成"URL= {web_site}"即可
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
return 0;
}
运行报错:
Action2.c(6): Error -27226: The "URL = http://172.25.75.2:1080/WebTours/" argument (number 2) is unrecognized or misplaced [MsgId: MERR-27226]
Action2.c(6): web_url("WebTours") highest severity level was "ERROR", 0 body bytes, 0 header bytes [MsgId: MMSG-26388]
解决方法:
"URL = {web_site}",URL和等号”=”之间多出了一个空格,去掉该空格即可。
所以使用lr_eval_string()函数的时候也是使用双引号来调用的。
还可以如下方式
Action2()
{
lr_save_string("http://172.25.75.2:1080/", "web_site");
lr_save_string("WebTours/", "web_name");
//打开登录页面
web_url("WebTours",
"URL={web_site}{web_name}",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
return 0;
}
获取参数值的字符串表识
可用lr_eval_string函数获取参数值的字符串标表示,然后用lr_output_message()函数输出结果
Action2()
{
lr_save_string("http://172.25.75.2:1080/", "web_site");
lr_save_string("WebTours/", "web_name");
lr_output_message(lr_eval_string("获取参数值的字符串表示:{web_site}{web_name}"));
//打开登录页面
web_url("WebTours",
"URL= {web_site}{web_name}",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
return 0;
}
注:如果想获取参数字符串的第一个字母,同c,可以这样:lr_eval_string(“{param}”)[0];
将int型数字保存为参数
lr_save_int(int_number, “param_name”)
例如:
Action2()
{
lr_save_int(0, "int_param");
//打开登录页面
web_url("WebTours",
"URL=http://172.25.75.2:1080/WebTours/",
// "Resource=0",
"Resource={int_parma}",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
return 0;
}
把时间保存为参数
通过lr_save_datetime函数来实现。
函数原型:
void lr_save_datetime(const char *format, int offset, const char *name);
format:期望输出的日期格式,如:%Y、%m、%d、%X等
offset:类似与表示时间的一些关键字常量:
DATE_NOW -> 现在的日期
TIME_NOW -> 现在的时间
ONE_DAY -> 一天的时间
ONE_HOUR -> 一小时的时间
ONE_MIN -> 一分钟的时间
需要注意的是,他们可以单独使用,也可以联合使用
DATE_NOW + TIME_NOW -> 当前时间
DATE_NOW-ONE_DAY -> 昨天
DATE_NOW+ONE_DAY -> 明天
两天前的日期
DATE_NOW-2*(ONE_DAY)、 DATE_NOW-2*24*(ONE_HOUR)、 DATE_NOW-2*24*60*(ONE_MIN)
2个小时后的时间
TIME_NOW+2*(ONE_HOUR)
TIME_NOW+2*60*(ONE_MIN)
name:期望将时间保存到的那个参数的名称
format格式参照表:
|
Code |
Description |
|
%a |
day of week, using locale's abbreviated weekday names |
|
%A |
day of week, using locale's full weekday names |
|
%b |
month, using locale's abbreviated month names |
|
%B |
month, using locale's full month names |
|
%c |
date and time as %x %X |
|
%d |
day of month (01-31) |
|
%H |
hour (00-23) |
|
%I |
hour (00-12) |
|
%j |
number of day in year (001-366) |
|
%m |
month number (01-12) |
|
%M |
minute (00-59) |
|
%p |
locale's equivalent of AM or PM, whichever is appropriate |
|
%S |
seconds (00-59) |
|
%U |
week number of year (01-52), Sunday is the first day of the week. Week number 01 is the first week with four or more January days in it. |
|
%w |
day of week; Sunday is day 0 |
|
%W |
week number of year (01-52), Monday is the first day of the week. Week number 01 is the first week with four or more January days in it. |
|
%x |
date, using locale's date format |
|
%X |
time, using locale's time format |
|
%y |
year within century (00-99) |
|
%Y |
year, including century (for example, 1988) |
|
%Z |
time zone abbreviation |
|
%% |
to include the "%" character in your output string |
Action()
{
lr_save_datetime("%X",TIME_NOW,"time");
lr_save_datetime("%Y-%m-%d",DATE_NOW,"date");
lr_save_datetime("%Y-%m-%d %X",DATE_NOW+TIME_NOW,"datetime");
lr_save_datetime("%Y-%m-%d",DATE_NOW-ONE_DAY,"yesterday");
lr_output_message(lr_eval_string("系统的当前时间为:{time}"));
lr_output_message(lr_eval_string("系统的当前日期为:{date}"));
lr_output_message(lr_eval_string("系统的当前日期,当前时间:{datetime}"));
lr_output_message(lr_eval_string("昨天的日期为:{yesterday}"));
return 0;
}
运行结果:
Starting iteration 1.
Starting action Action.
Action.c(7): 系统的当前时间为:12:27:54
Action.c(8): 系统的当前日期为:2014-10-22
Action.c(9): 系统的当前日期,当前时间:2014-10-22 12:27:54
Action.c(10): 昨天的日期为:2014-10-21
Ending action Action.
Ending iteration 1.
把内容保存为带格式的参数
lr_param_sprintf(param_name,format,var1,var2,…);
示例:
Action2()
{
int index = 56;
char *suffix = "txt";
lr_param_sprintf("NewParam","log_%d.%s",index,suffix);
lr_output_message("The new file name is %s",lr_eval_string("{NewParam}"));
return 0;
}
运行结果:
Starting action Action2.
Action2.c(24): The new file name is log_56.txt
Ending action Action2.
loadrunner之脚本篇——将内容保存为参数的更多相关文章
- loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取
转自:http://blog.sina.com.cn/s/blog_13cc013b50102v49c.html(查看原文) 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 ...
- loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part 2
脚本开发-参数化之将内容保存为参数.参数数组及参数值获取 by:授客 QQ:1033553122 ----------------接 Part 1--------------- 把内容保存到参数数组 ...
- Loadrunner之脚本的调试和保存(六)
一.调试脚本 脚本录制完毕后,按F5键或单击菜单上的RUN按钮,可以运行脚本. 在VIRTUAL USER GENERATOR中运行脚本的作用,主要是查看录制的脚本能否正常通过,如果有问题 ...
- Loadrunner之脚本篇——事务函数
1.事务的开始和结束名称需要相同 lr_start_transaction(“transaction_name”); …//事务处理 lr_end_transaction(“transaction_n ...
- loadrunner之脚本篇——录制方式HTML-based和URL-based Script
A. HTML-based Script 针对 Web (HTTP/HTML)虚拟用户的缺省录制级别.它指示VuGen录制当前web页面上下文中的HTML action.录制会话期间并不录制所有资 ...
- loadrunner之脚本篇——代理录制
版本:Loadruner 11.0 A.PC端录制Web应用程序 步骤1:根据实际情况,选择对应的协议 本例中选择Web(HTTP/HTML),如下 步骤2:找到代理设置界面 点击 Start Rec ...
- Loadrunder脚本篇——关联数组(参数数组)
导言 前面说过可以用关联取出服务器相关的一些动态变化的信息,前面也提过web_reg_save_param中可以设置ord=all,代表从服务器中取出的是一个数组,它试用的场景是当我访问一个发帖网站, ...
- LoadRunner脚本篇
LoadRunner脚本篇 1概述 2脚本录制 3脚本编写 4脚本调试 关 键 词:LoadRunner 性能测试脚本 摘 要:编写一个准确无误的脚本对性能测试有至关重要的意 ...
- Loadrunner下载脚本
由于最近又在SGM做性能测试,扒拉出一篇去年5.6月份的一个脚本. 最近写的翻来看看其实也蛮简单的,还是就不放博客了. Action(){ //定义文件大小 int flen; //定义响应数据内容大 ...
随机推荐
- Java并发编程(九)安全发布
之前讨论是如何将对象封闭在线程之中,这样可以减少一些并发带来的同步和可见性问题.但是在有些时候,我们希望在多个线程间共享对象,此时必须确保安全地进行共享. [不安全发布的示例] 可见性问题:其他线程看 ...
- 椭圆曲线ECC基本概念
椭圆曲线的曲线方程是以下形式的三次方程: y2+axy+by=x3+cx2+dx+e a,b,c,d,e是满足某些简单条件的实数.定义中包含一个称为无穷点的元素,记为O 如果其上的3个点位于同一直线上 ...
- 21:开发脚本管理服务端LVS案例
[root@lb03 scripts]# cat lv_manager.sh #!/bin/bash #定义只能是root用户执行 ];then echo "permission deny ...
- 第一百九十五节,jQuery EasyUI,Resizable(调整大小)组件
jQuery EasyUI,Resizable(调整大小)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Resizeable(调整大小)组 ...
- Servlet 点击计数器
网页点击计数器 很多时候,您可能有兴趣知道网站的某个特定页面上的总点击量.使用 Servlet 来计算这些点击量是非常简单的,因为一个 Servlet 的生命周期是由它运行所在的容器控制的. 以下是实 ...
- Web里URL空格的转换方法
今天收到一个Bug修复的任务,Bug为在页面上输入一个文件夹名包含空格,点击该文件夹的URL后链接错误. 看URL是HttpUtility.UrlEncode将空格转换成了“+”号,原因找到就着手解决 ...
- C++中计算矩阵的行列式
使用eigen库: 求行列式: #include <iostream> #include <Eigen/Dense> using namespace std; using na ...
- day3笔记
一.内容回顾 1.break:停止当前循环,后面的程序不会运行,跳出循环. 跳出while循环:1,改变条件.2.break continue:结束本次循环,继续下一次循环. 2.格式化输出:%%可以 ...
- Android无线测试之—UiAutomator UiSelector API介绍之二
Android的布局与组件及组件属性介绍 一.布局: 1)线性布局:控价在线性方向上一次排列 2)表格布局:向表格一样有标准的行和列 3)相对布局:通过相对定位的方式让控件出现在布局的任何位置 4)帧 ...
- 【BZOJ2238】Mst 最小生成树+LCA+堆
[BZOJ2238]Mst Description 给出一个N个点M条边的无向带权图,以及Q个询问,每次询问在图中删掉一条边后图的最小生成树.(各询问间独立,每次询问不对之后的询问产生影响,即被删掉的 ...