博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
性能测试学习第七天_脚本概要
阅读量:6951 次
发布时间:2019-06-27

本文共 6573 字,大约阅读时间需要 21 分钟。

脚本概要

Init,action,end说明

init录制的一般是业务流程开始之前的初始化工作(如登录,服务器初始化)

action录制的议案是业务流程操作的事件

end录制的一般是退出的时候执行的操作(用户退出,注销)

init和end不能迭代多次,只能运行一次,action可以迭代多次执行

 

脚本录制操作步骤

 

脚本详解

那loadrunner自带的程序来说,首先我们启动webserver服务,打开浏览器访问

使用loadrunner进行订票系统的录制,录制的脚本如下

Action(){    web_url("WebTours",         "URL=http://localhost:1080/WebTours/",         "Resource=0",         "RecContentType=text/html",         "Referer=",         "Snapshot=t2.inf",         "Mode=HTML",         LAST);    lr_think_time(6);    web_submit_form("login.pl",         "Snapshot=t3.inf",         ITEMDATA,         "Name=username", "Value=jojo", ENDITEM,         "Name=password", "Value=bean", ENDITEM,         "Name=login.x", "Value=45", ENDITEM,         "Name=login.y", "Value=14", ENDITEM,         LAST);    web_image("Search Flights Button",         "Alt=Search Flights Button",         "Snapshot=t4.inf",         LAST);    lr_think_time(7);    web_submit_form("reservations.pl",         "Snapshot=t5.inf",         ITEMDATA,         "Name=depart", "Value=London", ENDITEM,         "Name=departDate", "Value=05/17/2016", ENDITEM,         "Name=arrive", "Value=Paris", ENDITEM,         "Name=returnDate", "Value=05/18/2016", ENDITEM,         "Name=numPassengers", "Value=2", ENDITEM,         "Name=roundtrip", "Value=
", ENDITEM, "Name=seatPref", "Value=None", ENDITEM, "Name=seatType", "Value=Coach", ENDITEM, "Name=findFlights.x", "Value=8", ENDITEM, "Name=findFlights.y", "Value=10", ENDITEM, LAST); web_submit_form("reservations.pl_2", "Snapshot=t6.inf", ITEMDATA, "Name=outboundFlight", "Value=241;97;05/17/2016", ENDITEM, "Name=reserveFlights.x", "Value=37", ENDITEM, "Name=reserveFlights.y", "Value=7", ENDITEM, LAST); web_submit_form("reservations.pl_3", "Snapshot=t7.inf", ITEMDATA, "Name=firstName", "Value=Joseph", ENDITEM, "Name=lastName", "Value=Marshall", ENDITEM, "Name=address1", "Value=234 Willow Drive", ENDITEM, "Name=address2", "Value=San Jose/CA/94085", ENDITEM, "Name=pass1", "Value=Joseph Marshall", ENDITEM, "Name=pass2", "Value=", ENDITEM, "Name=creditCard", "Value=", ENDITEM, "Name=expDate", "Value=", ENDITEM, "Name=saveCC", "Value=
", ENDITEM, "Name=buyFlights.x", "Value=44", ENDITEM, "Name=buyFlights.y", "Value=13", ENDITEM, LAST); web_image("SignOff Button", "Alt=SignOff Button", "Snapshot=t8.inf", LAST); return 0;}

下面看另一个简单的小程序

Action(){    int randomnumber;       randomnumber = rand() % 2+1;    switch (randomnumber) {        case 1:        {            lr_rendezvous("访问百度集合点");            web_url("www.baidu.com",         "URL=http://www.baidu.com/",                 "Resource=0",                     "RecContentType=text/html",                     "Referer=",                     "Snapshot=t12.inf",                     "Mode=HTML",                     EXTRARES,                     "Url=http://s1.bdstatic.com/r/www/img/i-1.0.0.png", ENDITEM,                     "Url=/favicon.ico", "Referer=", ENDITEM,                     "Url=http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif", ENDITEM,                     LAST);            return 0;        }        case 2:        {            lr_rendezvous("访问有道集合点");            web_url("www.youdao.com",                     "URL=http://www.youdao.com/",                     "Resource=0",                     "RecContentType=text/html",                     "Referer=",                     "Snapshot=t7.inf",                     "Mode=HTML",                     EXTRARES,                     "Url=http://shared.ydstatic.com/oxo/p/pic.gif", ENDITEM,                     "Url=http://shared.ydstatic.com/oxo/p/logo.png?1", ENDITEM,                     "Url=http://shared.ydstatic.com/oxo/p/nv_line.gif", ENDITEM,                     "Url=http://shared.ydstatic.com/r/2.0/p/pic.gif", ENDITEM,                     LAST);            return 0;        }             }    }

上面的程序,我分别录制了百度、有道访问首页的代码,我想在运行脚本时,随机的去访问其中一个网站,如何做呢?我们通过随机函数,随机出1~3之间的整数,根据随机来的结果,然后执行switch语句中的代码。在Vugen中回放的结果如下

虚拟用户脚本已从 : 2016-05-16 15:10:09 启动正在开始操作 vuser_init。Windows 7 版 LoadRunner 11.0.0 的 Web Turbo 重播; 内部版本 8859 (Aug 18 2010 20:14:31)      [MsgId: MMSG-27143]Run Mode: HTML      [MsgId: MMSG-26000]运行时设置文件: "C:\Users\246\AppData\Local\Temp\无名称1\\default.cfg"      [MsgId: MMSG-27141]正在结束操作 vuser_init。正在运行 Vuser...正在开始迭代 1。正在开始操作 Action。Action.c(10): 集合 访问百度集合点Action.c(12): 正在下载资源“http://s1.bdstatic.com/r/www/img/i-1.0.0.png”(由参数编号 9 指定)      [MsgId: MMSG-26577]Action.c(12): 正在下载资源“http://www.baidu.com/favicon.ico”(由参数编号 11 指定)      [MsgId: MMSG-26577]Action.c(12): 正在下载资源“http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif”(由参数编号 14 指定)      [MsgId: MMSG-26577]Action.c(12): 在 HTML“http://www.baidu.com/”中找到资源“http://www.baidu.com/img/bd_logo1.png”      [MsgId: MMSG-26659]Action.c(12): 在 HTML“http://www.baidu.com/”中找到资源“http://www.baidu.com/img/baidu_jgylogo3.gif”      [MsgId: MMSG-26659]Action.c(12): 在 HTML“http://www.baidu.com/”中找到资源“http://s1.bdstatic.com/r/www/cache/static/jquery/jquery-1.10.2.min_f2fb5194.js”      [MsgId: MMSG-26659]Action.c(12): web_url("www.baidu.com") 已成功,73783 个正文字节,3048 个标头字节,13 个成块开销字节      [MsgId: MMSG-26385]正在结束操作 Action。正在结束迭代 1。正在结束 Vuser...正在开始操作 vuser_end。正在结束操作 vuser_end。Vuser 已终止。

 

下面的程序是一个读取文件的例子

首先我们新建一个read.txt的文件,里面随便写一些内容

Action(){    int count,total=0;    char buffer [10];    long file_stream;    char * filename = "C:\\read.txt";  //读取文件的存放位置    //判断是否可以读取文件    if((file_stream =fopen(filename,"r"))==NULL)       {        lr_error_message("不能打开%s文件!",filename);        return -1;    }    while(!feof(file_stream))    {        count=fread(buffer,sizeof(char),10,file_stream);  //从文件中读取50个字符        total=total+count;   //字符个数计数        if(total>=10)        {            fclose(file_stream);  //关闭文件            lr_output_message("文件的前10字符:%s",buffer);            break;  //退出循环        }    }    return 0;}

回放结果如下:

虚拟用户脚本已从 : 2016-05-16 15:31:33 启动正在开始操作 vuser_init。Windows 7 版 LoadRunner 11.0.0 的 Web Turbo 重播; 内部版本 8859 (Aug 18 2010 20:14:31)      [MsgId: MMSG-27143]Run Mode: HTML      [MsgId: MMSG-26000]运行时设置文件: "C:\Users\246\AppData\Local\Temp\无名称1\\default.cfg"      [MsgId: MMSG-27141]正在结束操作 vuser_init。正在运行 Vuser...正在开始迭代 1。正在开始操作 Action。Action.c(24): 文件的前10字符:猪猪654bhe正在结束操作 Action。正在结束迭代 1。正在结束 Vuser...正在开始操作 vuser_end。正在结束操作 vuser_end。Vuser 已终止。

 

在了解脚本的基本含义之后,我们所要做的就是熟悉loadrunner的常用函数。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/zhuzhutest/p/5497602.html

你可能感兴趣的文章
Oracle 多行、多列子查询
查看>>
8 -- 深入使用Spring -- 8...1 Spring提供的DAO支持
查看>>
【webpack】流行的前端模块化工具webpack初探
查看>>
配置中心选型
查看>>
使用ASP.NET Core的User Secrets特性
查看>>
[原创] 如何PCB通流能力计算
查看>>
android之Activity的生命周期
查看>>
hadoop2.4 支持snappy
查看>>
java 又一次抛出异常 相关处理结果演示样例代码
查看>>
STL 笔记(四) 迭代器 iterator
查看>>
2017"百度之星"程序设计大赛 - 复赛1003&&HDU 6146 Pokémon GO【数学,递推,dp】
查看>>
开源倾情奉献:基于.NET打造IP智能网络视频监控系统
查看>>
[LeetCode] Valid Parenthesis String 验证括号字符串
查看>>
linux之 ssh连接服务器,WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
查看>>
Android连接热点的Socket文件传输
查看>>
各大SRC中的CSRF技巧
查看>>
Docker for Windows 使用入门
查看>>
c代码片段-注解
查看>>
【Django】Web应用开发经由
查看>>
SpringBoot(九)-- SpringBoot JDBC
查看>>