性能测试学习第七天_脚本概要

脚本概要

Init,action,end说明

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

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

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

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

 

脚本录制操作步骤

 

脚本详解

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

使用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=<OFF>", 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=<OFF>", 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的常用函数。

 

 

 

 

 

 

posted @ 2016-05-16 11:54  浅浅水声  阅读(532)  评论(0编辑  收藏  举报