今天接着翻译http://www.wilsonmar.com/1lrscrīpt.htm上面关于LR脚本编写部分.
VUser_Init部分
这里是Vuser_init部分的一些例子:
操作系统的User ID
下面显示了使用advapi32.dll的GetUserNameA函数获得的操作系统的用户ID
char sUserID[1024]; // Maximum possible UserID length.
long lUserIDSize = sizeof(sUserID)-1;
int rc;
rc=lr_load_dll("advapi32.dll");
if( rc != 0 ){
lr_error_message("lr_load_dll of advapi32.dll failed. Aborted for rc=%d",rc);
lr_abort();
}else{
GetUserNameA(sUserID, &lUserIDSize);
lr_message("UserID='%s'", sUserID);
}
所有的变量声明需要一块放到最上方。在vuser_init 部分创建的本地C变量(如 int或char)对其他部分的脚本是不可见的。所以使用lr_save_string函数来创建对所有脚本可用的全局参数。例子:
char *itoa ( int value, char *str, int radix );
vuser_init(){
int x = 10;
char buffer[10];
lr_save_string( itoa( x, buffer, 10) , "pX" );
lr_message ( "int x = %s", lr_eval_string("{pX}" ));
return 0;
}
运行时设置的附加属性(Additional Attribute)
8.0版本引进了一个非常有价值的特性:在运行时设置中指定属性,这个属性可以对不同的虚拟用户组设置不同的值。
下面的代码是从运行时设置的附加属性中读取名为“usertype”的参数。然后使用参数值来对应的设置全局的"thinktime1"变量。
int thinktime1=0; 51Testing软件测试网Y[1]D9d
wN$z[1]P+M
vuser_init() 51Testing软件测试网%YuP(i(j F^"O1d `L
{
LPCSTR strUsertype; // Define *str. 51Testing软件测试网8o[1]@(FQ0L;IC
strUsertype = lr_get_attrib_string("usertype"); 51Testing软件测试网n^(m#{N1mjb
if (strUsertype==NULL){
lr_output_message("### Run-time Settings Additional Attribute usertype not specified. Cannot continue.");
a
G0A0s3b C"^:SeH(O$p0o0lr_abort();
}else{51Testing软件测试网T0{9D:|
~
lr_message("### Run-time Settings Additional Attribute usertype=\"%s\"", strUsertype );51Testing软件测试网6~ e%{ c?'x @ C
if( strcmp( strUsertype,"advanced") == 0 ){ thinktime1=2; }
r4?r#F#IB
M|!Ln0else
To[1]m$_ KtQY0if( strcmp( strUsertype,"intermediate") == 0 ){ thinktime1=4; }51Testing软件测试网Cv;bz V*M$[
h[1]B
else
}^"q$f|)w0if( strcmp( strUsertype,"basic") == 0 ){ thinktime1=8; }51Testing软件测试网'r$pb%Q
e,?0dx.Y
S
else{
%m4T
w0j3b&Gh/x,m0
lr_error_message("### ERROR: Value not recognized. Aborting run." );
Js"V_*L0lr_abort();
}
}51Testing软件测试网Tt,p^WN[1]H
return 0;
}
Time Structure Fix(不知道怎么翻译,呵呵,“时间结构的解决“?)
根据知识库34195的文章,默认当前时间戳的毫秒部分不被更新,除非ftime使用的时间结构被重新定义:
typedef long time_t;
struct _timeb {
time_t time;
unsigned short millitm;
short timezone;
short dstflag;
};
struct _timeb t;
_tzset(); \\ 使用ftime设置变量
_ftime( &t );
lr_message( "Plus milliseconds: %u", t.millitm );
控制信息的显示:
在运行时,当脚本的事务失败后继续,你怎么知道哪个用户失败了?
在每个失败的事务之后,发出一个能够唯一确定该用户的信息。
Loadrunner提供了一些函数来在运行时显示信息:
· // 往输出日志上发送消息,这个消息前边会带有action 的名称和行数51Testing软件测试网!O(uK `hA(? s
lr_output_message("an output message");
例子:
· Actions.c (4): an output message
· // 往输出日志和虚拟用户日志上发消息:
|;}
e9E:G0
· lr_message("*** a message"
+"\r"+"A new line."
);
把");"放到另一行,这样可以容易的在命令上添加或者删除代码项。
在UNIX/Linux机器上,使用 "\n"来添加一个换行。
在Windows 机器上,使用"\r"来添加一个换行。
// 往输出日志上发送不带action名称和行数的信息
O3X-Np,O4ZZ0lr_log_message("number\t"+ numvar +"\t");
// 只给控制器上的虚拟用户状态区域发送信息(当在VuGen中运行时,只是简单的显示): 51Testing软件测试网"oC:d
L9^
lr_vuser_status_message("a vuser status message");
// 给LoadRunner控制器或者Tuning模块的控制台输出窗口显示一个红色高亮度显示的-17999 信息。51Testing软件测试网*[
p
^C
mA*j
lr_error_message("an error message");
分享到:
相关推荐
【LoadRunner学习---脚本编写系列】是一系列关于LoadRunner工具中脚本开发的文章,旨在帮助读者掌握如何高效地编写LoadRunner脚本。LoadRunner是一款功能强大的性能测试工具,通过模拟多个用户并发执行脚本,以检测...
【标题解析】 "使用LoadRunner-编写JAVA-测试脚本.zip" 这个标题指出,这...综上所述,这个压缩包的内容很可能是对以上各个知识点的详细讲解和示例代码,适合希望学习或提升LoadRunner Java脚本编写技能的测试工程师。
2. 录制脚本:使用LoadRunner的VuGen(Virtual User Generator)录制用户操作,生成脚本。 3. 脚本调试与优化:通过LR的控制器进行脚本的调试,优化逻辑和参数化,确保模拟真实用户行为。 4. 分配负载机:在控制器...
【使用LoadRunner编写JAVA测试脚本】 LoadRunner是一款强大的负载测试工具,它允许测试人员模拟大量用户并发执行任务,以评估应用程序的性能和稳定性。在本文档中,我们将重点讨论如何使用LoadRunner来编写JAVA测试...
2. 编写程序:使用熟悉的编程语言(如C++、Python、Java等)编写程序,该程序将读取数据,调用LR_API生成对应的LoadRunner脚本语句。 3. 脚本框架:建立一个基本的LoadRunner脚本模板,包括必要的初始化、设置和...
例如,VUGen(Virtual User Generator)用于编写和编辑脚本,Controller用于管理和执行测试场景,而Analysis则用于分析测试结果。 总结来说,LoadRunner11的Load Generator在Linux平台上的运用,使得性能测试更具...
### LOADRUNNER .NET ADD-IN 编写的性能测试脚本实例解析 #### 一、概述 性能测试是软件测试中的一个重要环节,它旨在评估系统在压力条件下的表现,确保其能够在预期的工作负载下正常运行。LoadRunner 是一个广泛...
在实际使用LoadRunner时,还需要了解如何编写和修改测试脚本,以及如何解读和分析测试结果,以便对系统性能进行有效的评估和优化。 总的来说,LoadRunner 11.0 for Linux是一个强大的性能测试工具,尤其适用于需要...
### Loadrunner脚本编写知识点详解 #### 一、Loadrunner脚本编写概述 Loadrunner是一款由Micro Focus公司出品的功能强大的性能测试工具,主要用于预测系统行为并优化其性能。其中脚本编写是Loadrunner的核心功能之...
在LoadRunner脚本中,可以使用`lr_start_transaction`和`lr_end_transaction`函数来定义和结束事务,这样可以更好地追踪性能指标。 4. **参数化与数据驱动**: 要模拟真实用户行为,通常需要将硬编码的值替换为...
LoadRunner脚本编写
HP LoadRunner软件配置、脚本编写和执行指南.pdf HP LoadRunner软件配置、脚本编写和执行指南.pdf HP LoadRunner软件配置、脚本编写和执行指南.pdf HP LoadRunner软件配置、脚本编写和执行指南.pdf
2. **LoadRunner工作原理**:了解Vuser(虚拟用户)的概念,以及如何通过录制和回放技术创建和编辑测试脚本。 3. **测试场景设置**:学习如何定义测试场景(Scenarios),包括用户负载模型(Ramp-up和Ramp-down)、...
《性能测试从零开始——LoadRunner入门》资源下载,这可能是一份详细的学习资料,包括LoadRunner的基本操作、脚本编写、场景设置以及结果分析等方面,对初学者非常有帮助。 通过深入学习和实践,你将能够熟练掌握...
LoadRunner 脚本编写技术指南 LoadRunner 脚本编写技术指南旨在提供 Web(http/html) 协议脚本编写方法和技术指南,指导脚本开发人员编写高质量的 LoadRunner 脚本。该指南涵盖了 Web(http/html) 协议的基础知识、...
- **单协议脚本**:默认情况下,VuGen 会打开“New Virtual User”对话框,从中可以选择录制脚本的协议,如图2-2所示。 - **多协议脚本**:在“New Virtual User”对话框中选择需要录制的多个协议,如图2-3所示。 - ...
总之,LoadRunner的错误解决需要综合理解其工作原理,熟练掌握脚本编写、回放、监控和结果分析等环节。通过不断实践和学习,我们可以逐步克服这些挑战,提升性能测试的效率和质量。在遇到问题时,利用官方文档、社区...
### LoadRunner脚本编写教程详解 #### 一、LoadRunner脚本生成方法及优缺点分析 **1. 自动录制生成脚本** - **优点**:简单易用,适合初学者快速入门。录制过程能够自动捕获应用程序的操作流程,生成相应的脚本。...
- **脚本编写技巧**:遵循可读性、可维护性的原则,合理使用注释和变量。 - **测试设计**:根据业务需求和系统特性设计测试场景,确保测试的全面性和代表性。 9. **学习资源** - **官方文档**:HP提供详细的...