zoukankan      html  css  js  c++  java
  • 性能测试学习第七天_脚本概要

    脚本概要

    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:Users246AppDataLocalTemp无名称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:Users246AppDataLocalTemp无名称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的常用函数。

     

  • 相关阅读:
    leetcode 77 组合
    leetcode 40组合总和 II
    leetcode 216 组合总和III
    弹性伸缩 AS(Auto Scaling)
    弹性计算服务(Elastic Compute Service) / 云服务器 ECS
    云计算概述
    Zabbix Proxy 分布式监控
    Zabbix 自动发现 & 自动注册
    LVS-DR 模式
    GoAccess 监控工具
  • 原文地址:https://www.cnblogs.com/zhuzhutest/p/5497602.html
Copyright © 2011-2022 走看看