1、写入数据到文件:(实际应用中可以将关联得到的参数写入文件)
Action()
{
int MyFile;
char Name[] = "测试数据"; MyFile = fopen( "c:\\temp\\names.txt", "w+" );
fprintf(MyFile,"%s", Name);
return 0;
}
2、atol类型转换字符串转成整型(atoi atof itoa)
Action()
{
char a[512];
lr_output_message("value:%s",lr_eval_string("{param1}"));
sprintf(a,"value=%ld",atol(lr_eval_string("{param1}"))+1);
lr_output_message("value:%s",a);
return 0;
}
3、 fopen():返回一个FILE数据类型的指针.因为LoadRunner不支持FILE数据类型,所以返回值需要转化成int型.
int MyFile;
MyFile=(int)fopen("C:\\temp\\loans.txt","w");
fopen()函数的第一个参数是创建文件的路径.第二个参数指定了创建文件的模式.下面是常用的几种模式:
“w” - 写,当需要往文件中写的时候.如果文件存在,就覆盖该文件,如果文件不存在,根据第一个参数来创建新文件.
“r” 读,需要从文件中读的时候.这个文件必须已经存在.
“a” 附加,当往文件末尾添加数据时用到.
“rw” 读和写.
第一个参数中注意文件路径为"\\",因为"\"在C语言中为转义字符.另外,如果文件和脚本在同一个目录中,文件的完整路径可以省略.
Action() {
int count, total = 0;
char buffer[1000];
long file_stream;
char *filename = "c:\\readme.txt";
if ((file_stream = fopen(filename, "r")) == NULL ) {
lr_error_message("Cannot open %s", filename);
return -1;
}
while (!feof(file_stream)) {
count = fread(buffer, sizeof(char), 1000, file_stream);
lr_output_message("%3d read", count);
if (ferror(file_stream)) {
lr_output_message("Error reading file %s", filename);
break;
}
total += count;
}
lr_output_message("Total number of bytes read = %d", total );
if (fclose(file_stream))
lr_error_message("Error closing file %s", filename);
return 0;
}
4、lr_save_string
(将非空字符串保存到指定的参数中,可将关联景中处理过的字符保存起来,以便后面进行参数化。)
5、lr_eval_string (用于返回参数中的实际字符串值,可以使用该函数来查看参数化取值是否正确。)
如:lr_output_message(“ID is %s” , lr_eval_string(“{id}”));
补充:web_url()函数详解
web_url()函数可以模拟用户请求,它也是在脚本中最常使用的函数之一。
web_url()函数的基本语法如下所示:
web_url("在测试结果中显示的名称","URL=需要访问的超链地址",LAST);
和web_link不同的地方在于这里只需要在URL=后填写需要访问的地址即可,和在IE地址栏中输入的内容相同,使用web_url的好处是没有任何请求的前后依赖关系,只负责发送一个标准的Get HTTP请求。
如果需要访问51Testing论坛,可以直接这样写:
1. web_url("51testing","URL=http://bbs.51testing.com",LAST);
除了以上这些元素,在录制出来的web_link或者web_url函数中经常还能看到如下所示的大量内容:
1. EXTRARES
2. "Url=../bite.jpg", "Referer=http://192.168.0.200", ENDITEM,
3. "Url=../title.gif", "Referer=http://192.168.0.200", ENDITEM,
4. ……
这一段内容说明在载入这个页面时还有其他图片或者附属资源需要下载。
web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的GET方法,如果需要提交表单,实现HTTP请求中的POST方法,那么需要使用web_submit_form()或web_submit_data()函数。
补充:web_submit_form()函数详解
该函数会自动检测在当前页面上是否存在form,然后将后面的ITEMDATA数据进行传送。例如录制在Web Tours网站上登录操作,可以得到以下代码:
1. web_submit_form("login.pl",
2. "Snapshot=t3.inf",
3. ITEMDATA,
4. "Name=username", "Value=admin", ENDITEM,
5. "Name=password", "Value=123456", ENDITEM,
6. "Name=login.x", "Value=0", ENDITEM,
7. "Name=login.y", "Value=0", ENDITEM,
8. LAST);
隐藏的表单数据系统会自行发送。
补充:web_submit_data()函数详解
和web_submit_form()函数不同,web_submit_data()函数无须前面的页面支持,直接发送给对应页面相关数据即可。录制Web Tours网站登录,代码会变为:
1. web_submit_data("login.pl",
2. "Action=http://127.0.0.1:1080/WebTours/login.pl",
3. "Method=POST",
4. "TargetFrame=body",
5. "RecContentType=text/html",
6. "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
7. "Snapshot=t5.inf",
8. "Mode=HTML",
9. ITEMDATA,
10. "Name=userSession", "Value=100084.208748481fVtiAiVptiHfDAiiiptiiQcf", ENDITEM,
11. "Name=username", "Value=admin", ENDITEM,
12. "Name=password", "Value=123456", ENDITEM,
13. "Name=JSFormSubmit", "Value=off", ENDITEM,
14. "Name=login.x", "Value=0", ENDITEM,
15. "Name=login.y", "Value=0", ENDITEM,
16. LAST);
其中Action说明提交表单的处理页面,Method表明提交数据的方式。
当使用web_submit_data()函数时,隐藏表单的数据也会被记录下来作为ITEMDATA数据提交给服务器。 这里介绍了在HTTP页面中最常用的4个页面函数web_link()、web_url()、web_submit_form()、 web_submit_data(),通过这些函数可以实现大多数页面访问的请求和数据提交的过程。除了这4个函数,还有一个函数可能会经常看到:web_custom_request()。当请求比较特别时,VuGen无法简单使用以上4个函数进行表述,那么录制后便会出现 web_custom_request()函数,这个函数的作用是自定义HTTP请求规则。该函数更适合在使用自定义的HTTP请求规则中处理二进制内容。具体格式请参考帮助文档。
补充:web_link()函数详解
web_link()函数用来模拟用户单击一个超链接的操作。VuGen会记录访问页面后服务器返回的内容中有多少个超链接。当使用web_link()函数时,只要写出正确的链接名,VuGen会自动查找并访问页面中该链接名所指向的URL地址。
web_link()函数的基本语法如下所示:
web_link(“在测试结果中显示的名称”,“TEXT=需要单击的超链接名”,LAST);
◇ 在测试结果中显示的名称
也被称作步骤名,在测试结果中显示的名称是指在脚本运行完成后,打开Test Result,在link函数后的名称(此处为sign up now),如图3.16所示。
图3.16 Test Result执行步骤
这是通过web_link(“sign up now”,….)来实现的,我们能够在测试结果中方便、快速地定位。
◇ 需要单击的超链接名
单击的链接是通过Text=来说明的,等号后的内容就是需要单击的链接。这里需要注意,如果Text后的链接名不存在,那么就会得到以下错误: 该错误信息提示单击的signupnow这个链接不存在,整个web_link函数是错误的。
“Snapshot=t2.inf”用来说明该操作后的内容会被抓图保存到文件t2.inf中。最后LAST表明这个函数的结束。
例如:想要该脚本去点击WebTours首页上的administration链接,我们只需要将web_link修改为: 回放脚本看看是否正确通过,并进入管理页面。
思考:
如果一个页面中有多个同名的链接,使用web_link()该如何处理?
Ord这个关键字可以帮助你,在VuGen中很多函数都使用这个参数来判断对象的次序。
例如要单击页面上的第二个链接,那么可以这样写:
在这里需要注意,同名链接的先后顺序是根据HTML代码的解释顺序(从左往右,从上往下)来确定的。使用HTML-base script下的A script describing user actions好处是脚本简洁,基于用户操作进行模拟,浅显易懂,并且自身就包含了对象检查过程,无须校验。其缺点是当页面中存在多个同名链接时难以区分。所以我们建议使用下面一种脚本模式:A script containing explicit URLs only (e.g. web_url,web_submit_data)。
8、LoadRunner如何设置文本和网页图像的检查点。
通过 VuGen 可在网页上添加搜索文本字符串的检查。可以在录制期间或录制之后添加文本检查。
在创建文本检查时,需要定义检查的名称、检查范围、要检查的文本和搜索条件。
要在录制之后添加文本检查,请执行下列操作:
1.在 VuGen 主窗口中,右键单击与要对其执行检查的网页相应的步骤。从弹出菜单中选择“在之后插入”。将打开“添加步骤”对话框。
2.在“步骤类型”树中,展开“Web 检查”。
3.选择“文本检查”,然后单击“确定”。将打开“文本检查属性”对话框。请确保“规格”选项卡可见。
4.在“搜索”框中,键入要验证其存在与否的字符串。ABC 图标表示尚未为“搜索”框中的字符串分配参数。
5.要相对于邻近文本指定搜索字符串的位置,请选中“其右侧”或“其左侧”复选框。然后,在适当的字段中键入文本。例如,要验证字符串
[email protected]是否出现在单词“e-mail:”的右侧,请选中“其右侧”,然后在“其右侧”框中键入“e-mail:”。ABC 图标表示尚未为“其右侧”或“其左侧”框中的字符串分配参数。
6.命名文本检查。单击“常规”选项卡,然后在“步骤名”框中键入文本检查的名称。使用一个以后容易识别该检查的名称。
7. 属性表显示其他用于定义检查的属性。清除“仅查看活动属性”复选框可以查看活动和非活动属性。要启用某个属性,请单击该属性名左侧的单元格。在“值”列中为属性分配一个值。
8.单击“确定”接受设置。代表新文本检查的图标将被添加到脚本中的关联步骤中。在脚本视图中,“文本检查”图标显示为 web_find 函数。要在录制期间添加文本检查,请执行下列操作:
1.使用鼠标标记所需的文本。
2.单击录制工具栏上的“插入文本检查”图标。
除了使用 web_find 函数外,还可以使用两个其他的增强函数来搜索 HTML 页内的文本:
web_reg_find
web_global_verification
web_reg_find 函数是注册类型函数。它将注册对 HTML 页上的文本字符串进行的搜索。注册意味着它不会立即执行搜索 - 仅在执行下一个操作函数(如web_url)之后,才会执行检查。注意,如果正在使用并发函数组,则web_reg_find 函数仅在分组结束后才会执行。该函数与 web_find 函数的不同之处在于:它并不局限于基于 HTML 的脚本(请参见“录制选项” > “录制”选项卡)。该函数还具有其他属性(如实例)通过该属性可以确定文本出现的次数。在执行标准文本搜索时, web_reg_find是首选函数。通过 VuGen 可添加在网页上搜索图像的用户定义的检查。图像可以由 ALT 属性、SRC 属性或这两者来标识。可以在录制期间或录制之后添加用户定义的图像检查。录制之后,可以在脚本中编辑任何现有的图像检查。要添加图像检查,请执行下列操作:
1.在 VuGen 主窗口中,右键单击与要对其执行检查的网页相应的步骤。从弹出菜单中选择“在之后插入”。将打开“添加步骤”对话框。
2.在“步骤类型”树中,展开“Web 检查”。
3.选择“图像检查”,然后单击“确定”。将打开“图像检查属性”对话框。请确保“规格”选项卡可见。
4.选择一种标识图像的方法:
a)要使用图像的 ALT 属性来标识图像,请选中“替换图像名(ALT 属性)”复选框,然后键入 ALT 属性。在运行脚本时, Vuser 将搜索具有指定的 ALT 属性的图像。
b)要使用图像的 SRC 属性来标识图像,请选中“图像服务器文件名(SRC 属性)”复选框,然后键入 SRC 属性。在运行脚本时, Vuser 将搜索具有指定的 SRC属性的图像。ABC 图标表示尚未为 ALT 或 SRC 属性分配参数。
5.要命名图像检查,请单击“常规”选项卡。在“步骤名”框中,键入图像检查的名称。使用一个以后容易识别该检查的名称。
6.属性表显示其他用于定义检查的属性。清除“仅查看活动属性”复选框可以查看活动和非活动属性。要启用某个属性,请单击该属性名左侧的单元格。在“值”列中为属性分配一个值。
7.单击“确定”以接受设置。代表新图像检查的图标将被添加到 Vuser 脚本中的关联步骤中。可以指定插入到 Vuser 脚本中的每个 Web 检查的其他属性。在检查属性对话框的“常规”选项卡上的属性表中设置其他属性。