zoukankan      html  css  js  c++  java
  • LoadRunner脚本编写

    性能测试流程

    需求调研(性能的测试指标

    设计性能测试场景(频繁使用的功能 核心业务 接口 混合

    搭建环境(模拟真实的用户

    开发脚本

      检查点:对结束事务进行判断,默认结束状态是LR_AUTO

      参数化:模拟真实用户使用

      关联:服务器返回的动态参数

      集合点:做并发测试

    场景设计:单业务开发。核心业务并发、第三方接口、混合场景,监控服务器资源(cpu.内存,磁盘网络)

    执行场景:发现问题,挑有

    性能测试报告

    一.脚本编写

    案例一(登录注册手写脚本)

    Action()
    {
    	//请求1
    	web_custom_request("WebTours", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/", //Get请求的地址
    	"Method=GET", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t1.inf", //录制快照保存到t1.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
    	//请求2
    	web_custom_request("header.html", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/header.html", //Get请求的地址
    	"Method=GET", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t2.inf", //录制快照保存到t2.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
    
    	//请求3
    	web_custom_request("signOff=true", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true", //Get请求的地址
    	"Method=GET", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t3.inf", //录制快照保存到t3.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
    	//关联函数
    	web_reg_save_param_ex("Paramname=userSession",
    	"LB=name=userSession value=",
    	"RB=>",
    	LAST);
    
    	//请求4
    	web_custom_request("in=home", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //Get请求的地址
    	"Method=POST", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t4.inf", //录制快照保存到t4.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
    
    	//请求5
    	web_custom_request("home.html", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/home.html", //Get请求的地址
    	"Method=GET", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t5.inf", //录制快照保存到t5.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
        
    	lr_start_transaction("登录");
    
    	//POST
    	web_custom_request("login.pl", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/login.pl", //Get请求的地址
    	"Method=POST", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //请求的页面,在URL写明后,该属性无效可省略
    	"Snapshot=t6.inf", //录制快照保存到t6.inf中
    	"Mode=HTTP", //录制的模式HTTP
            "Body=userSession={userSession}&username=test001&password=123456",
    	LAST);
    
    
    	//请求7
    	web_custom_request("in=home", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", //Get请求的地址
    	"Method=GET", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t7.inf", //录制快照保存到t7.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
    
    	//检查点
    	web_reg_find("Text=Welcome, <b>test001</b>,",
                       "Savecount=登录计数",
                       LAST);
    
    	//请求8
    	web_custom_request("tro=true", //可以自定义
    	"URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true", //Get请求的地址
    	"Method=GET", //方式GET
    	"Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源
    	"RecContentType=text/html", //录制时响应报头文本类型
    	"Snapshot=t8.inf", //录制快照保存到t8.inf中
    	"Mode=HTTP", //录制的模式HTTP
    	LAST);
    //判断登录成功与否   if(atoi(lr_eval_string("{登录计数}")) >0){ lr_end_transaction("登录", LR_PASS);   }else{ lr_end_transaction("登录", LR_FAIL);    } //请求9 web_custom_request("signOff=1", //可以自定义 "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", //Get请求的地址 "Method=GET", //方式GET "Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源 "RecContentType=text/html", //录制时响应报头文本类型 "Snapshot=t9.inf", //录制快照保存到t9.inf中 "Mode=HTTP", //录制的模式HTTP LAST); //请求10 web_custom_request("in=home", //可以自定义 "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //Get请求的地址 "Method=GET", //方式GET "Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源 "RecContentType=text/html", //录制时响应报头文本类型 "Snapshot=t10.inf", //录制快照保存到t10.inf中 "Mode=HTTP", //录制的模式HTTP LAST);
    //请求11 web_custom_request("home.html", //可以自定义 "URL=http://127.0.0.1:1080/WebTours/home.html", //Get请求的地址 "Method=GET", //方式GET "Resource=0", //说明URL是否是一个资源,0代表不是资源,1代表是资源 "RecContentType=text/html", //录制时响应报头文本类型 "Snapshot=t11.inf", //录制快照保存到t11.inf中 "Mode=HTTP", //录制的模式HTTP LAST); return 0; }

    案例二(登录注册手写脚本使用web_custom_request)

    Action()
    {
    //请求1
        web_url("WebTours", 
        "URL=http://127.0.0.1:1080/WebTours/", 
        //"TargetFrame=", 
        //"TargetBrowser=Mercury Technologies", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Snapshot=t1.inf", 
        "Mode=HTTP", 
        LAST );
    //请求2
      web_url("header.html", 
        "URL=http://127.0.0.1:1080/WebTours/header.html", 
        //"TargetFrame=", 
        //"TargetBrowser=Mercury Technologies", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Snapshot=t2.inf", 
        "Mode=HTTP", 
        LAST );
    //请求3   web_url("welcome.pl?signOff=true", "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t3.inf", "Mode=HTTP", LAST ); //插入关联函数<input type=hidden name=userSession value=119191.457108141zVDAQVApfHfDzHifptzDtf>   web_reg_save_param_ex("Paramname=userSession",   "LB=name=userSession value=",   "RB=>",   LAST);
    //请求4   web_url("in=home", "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t4.inf", "Mode=HTTP", LAST ); //请求5    web_url("home.html", "URL=http://127.0.0.1:1080/WebTours/home.html", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t5.inf", "Mode=HTTP", LAST );   lr_start_transaction("登录"); //post提交
       web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t6.inf", "Mode=HTTP", ITEMDATA, "Name=username", "Value=test001", ENDITEM, "Name=password", "Value=123456", ENDITEM, "Name=userSession", "Value={userSession}", ENDITEM, LAST );
    //请求7   web_url("nav.pl?page=menu&in=home", "URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t7.inf", "Mode=HTTP", LAST ); //检查点 Welcome, <b>test001</b>, web_reg_find("Text=Welcome, <b>test001</b>,", "Savecount=登录计数", LAST); //请求8   web_url("login.pl?intro=true", "URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t8.inf", "Mode=HTTP", LAST );
    //判断登录成功与否 if(atoi(lr_eval_string("{登录计数}")) >0){ lr_end_transaction("登录", LR_PASS); }else{ lr_end_transaction("登录", LR_FAIL); } //lr_end_transaction("登录", LR_AUTO); //请求9   web_url("welcome.pl?signOff=1", "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t9.inf", "Mode=HTTP", LAST ); //请求10   web_url("nav.pl?in=home", "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t10.inf", "Mode=HTTP", LAST ); //请求11   web_url("home.html", "URL=http://127.0.0.1:1080/WebTours/home.html", //"TargetFrame=", //"TargetBrowser=Mercury Technologies", "Resource=0", "RecContentType=text/html", "Snapshot=t11.inf", "Mode=HTTP", LAST ); return 0; }

    案例三(随机订票方法一——选项固定)

    Action()
    {
    
    	web_url("WebTours",
    		"URL=http://127.0.0.1:1080/WebTours/",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=",
    		"Snapshot=t1.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("header.html",
    		"URL=http://127.0.0.1:1080/WebTours/header.html",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/",
    		"Snapshot=t2.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("welcome.pl",
    		"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/",
    		"Snapshot=t5.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("home.html",
    		"URL=http://127.0.0.1:1080/WebTours/home.html",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
    		"Snapshot=t6.inf",
    		"Mode=HTTP",
    		LAST);
    
    //关联usersession
    	web_reg_save_param_ex(
    		"ParamName=usersession",
    		"LB=userSession value=",
    		"RB=>
    <table border",
    		SEARCH_FILTERS,
    		"Scope=All",
    		LAST);
    	web_url("nav.pl",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
    		"Snapshot=t7.inf",
    		"Mode=HTTP",
    		LAST);
    
    	lr_start_transaction("登录");
    
    	web_submit_data("login.pl",
    		"Action=http://127.0.0.1:1080/WebTours/login.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    		"Snapshot=t9.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=userSession", "Value={usersession}", ENDITEM,
    		"Name=username", "Value=test002", ENDITEM,
    		"Name=password", "Value=123456", ENDITEM,
    		"Name=JSFormSubmit", "Value=off", ENDITEM,
    		"Name=login.x", "Value=53", ENDITEM,
    		"Name=login.y", "Value=11", ENDITEM,
    		LAST);
    
    
    	web_url("nav.pl_2",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/login.pl",
    		"Snapshot=t10.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_reg_find("Text=Welcome, <b>test002</b>, ",
    		"Fail=NotFound",
    		"SaveCount=登录次数",
    		"Search=Body",
    		LAST);
    	web_url("login.pl_2",
    		"URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/login.pl",
    		"Snapshot=t14.inf",
    		"Mode=HTTP",
    		LAST);
    
    	if(atoi(lr_eval_string("{登录次数}")) >0){
    	lr_end_transaction("登录", LR_PASS);
    	}else{
    	lr_end_transaction("登录", LR_FAIL);
    	};
    
    	lr_start_transaction("订票");
    
    	lr_think_time(12);
    
    
    
    //关联地址
    
    	web_reg_save_param_ex(
     		"ParamName=目的地",
    		"LB=option value="",
    		"RB=">",
    		"Ordinal={randomnumber}",
    		SEARCH_FILTERS,
    		"Scope=All",
    		
    		LAST);
    lr_output_message("目的地的值是: ",lr_eval_string("目的地"));
    	web_url("reservations.pl",
    		"URL=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    		"Snapshot=t17.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("Search Flights Button",
    		"URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
    		"Snapshot=t16.inf",
    		"Mode=HTTP",
    		LAST);
    	web_url("nav.pl_3",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    		"Snapshot=t18.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_submit_data("reservations.pl_2",
    		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
    		"Snapshot=t22.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=advanceDiscount", "Value=0", ENDITEM,
    		"Name=depart", "Value=Denver", ENDITEM,
    		"Name=departDate", "Value=08/20/2016", ENDITEM,
    		"Name=arrive", "Value={目的地}", ENDITEM,
    		"Name=returnDate", "Value=08/21/2016", ENDITEM,
    		"Name=numPassengers", "Value=1", ENDITEM,
    		"Name=seatPref", "Value=None", ENDITEM,
    		"Name=seatType", "Value=Coach", ENDITEM,
    		"Name=.cgifields", "Value=roundtrip", ENDITEM,
    		"Name=.cgifields", "Value=seatType", ENDITEM,
    		"Name=.cgifields", "Value=seatPref", ENDITEM,
    		"Name=findFlights.x", "Value=55", ENDITEM,
    		"Name=findFlights.y", "Value=5", ENDITEM,
    		LAST);
    
    
    	web_submit_data("reservations.pl_3",
    		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Snapshot=t24.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=outboundFlight", "Value=031;224;08/20/2016", ENDITEM,
    		"Name=numPassengers", "Value=1", ENDITEM,
    		"Name=advanceDiscount", "Value=0", ENDITEM,
    		"Name=seatType", "Value=Coach", ENDITEM,
    		"Name=seatPref", "Value=None", ENDITEM,
    		"Name=reserveFlights.x", "Value=75", ENDITEM,
    		"Name=reserveFlights.y", "Value=4", ENDITEM,
    		LAST);
    
    	web_submit_data("reservations.pl_4",
    		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Snapshot=t25.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=firstName", "Value=m", ENDITEM,
    		"Name=lastName", "Value=m", ENDITEM,
    		"Name=address1", "Value=m", ENDITEM,
    		"Name=address2", "Value=m", ENDITEM,
    		"Name=pass1", "Value=m m", ENDITEM,
    		"Name=creditCard", "Value=", ENDITEM,
    		"Name=expDate", "Value=", ENDITEM,
    		"Name=oldCCOption", "Value=", ENDITEM,
    		"Name=numPassengers", "Value=1", ENDITEM,
    		"Name=seatType", "Value=Coach", ENDITEM,
    		"Name=seatPref", "Value=None", ENDITEM,
    		"Name=outboundFlight", "Value=031;224;08/20/2016", ENDITEM,
    		"Name=advanceDiscount", "Value=0", ENDITEM,
    		"Name=returnFlight", "Value=", ENDITEM,
    		"Name=JSFormSubmit", "Value=off", ENDITEM,
    		"Name=.cgifields", "Value=saveCC", ENDITEM,
    		"Name=buyFlights.x", "Value=42", ENDITEM,
    		"Name=buyFlights.y", "Value=16", ENDITEM,
    		LAST);
    
    
    
    	lr_end_transaction("订票", LR_AUTO);
    
    	lr_start_transaction("退出");
    
    	web_url("welcome.pl_2",
    		"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
    		"Snapshot=t27.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("home.html_2",
    		"URL=http://127.0.0.1:1080/WebTours/home.html",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    		"Snapshot=t28.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("nav.pl_4",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    		"Snapshot=t29.inf",
    		"Mode=HTTP",
    		LAST);
    
    
    	lr_end_transaction("退出", LR_AUTO);
    
    return 0;
    }
    

      

    案例四(随机订票方法二——选项固定)

    Action()
    {
    int num;
    char str1[20];
    	web_url("WebTours",
    		"URL=http://127.0.0.1:1080/WebTours/",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=",
    		"Snapshot=t1.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("header.html",
    		"URL=http://127.0.0.1:1080/WebTours/header.html",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/",
    		"Snapshot=t2.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("welcome.pl",
    		"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/",
    		"Snapshot=t5.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("home.html",
    		"URL=http://127.0.0.1:1080/WebTours/home.html",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
    		"Snapshot=t6.inf",
    		"Mode=HTTP",
    		LAST);
    
    //关联usersession
    	web_reg_save_param_ex(
    		"ParamName=usersession",
    		"LB=userSession value=",
    		"RB=>
    <table border",
    		SEARCH_FILTERS,
    		"Scope=All",
    		LAST);
    	web_url("nav.pl",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
    		"Snapshot=t7.inf",
    		"Mode=HTTP",
    		LAST);
    
    	lr_start_transaction("登录");
    
    	web_submit_data("login.pl",
    		"Action=http://127.0.0.1:1080/WebTours/login.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    		"Snapshot=t9.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=userSession", "Value={usersession}", ENDITEM,
    		"Name=username", "Value=test002", ENDITEM,
    		"Name=password", "Value=123456", ENDITEM,
    		"Name=JSFormSubmit", "Value=off", ENDITEM,
    		"Name=login.x", "Value=53", ENDITEM,
    		"Name=login.y", "Value=11", ENDITEM,
    		LAST);
    
    
    	web_url("nav.pl_2",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/login.pl",
    		"Snapshot=t10.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_reg_find("Text=Welcome, <b>test002</b>, ",
    		"Fail=NotFound",
    		"SaveCount=登录次数",
    		"Search=Body",
    		LAST);
    	web_url("login.pl_2",
    		"URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/login.pl",
    		"Snapshot=t14.inf",
    		"Mode=HTTP",
    		LAST);
    
    	if(atoi(lr_eval_string("{登录次数}")) >0){
    	lr_end_transaction("登录", LR_PASS);
    	}else{
    	lr_end_transaction("登录", LR_FAIL);
    	};
    
    	lr_start_transaction("订票");
    
    //关联地址
    
    	web_reg_save_param_ex(
     		"ParamName=所有目的地",
    		"LB=option value="",
    		"RB=">",
    		"Ordinal=ALL",
    		SEARCH_FILTERS,
    		"Scope=All",
    		LAST);
    
    	
    	lr_output_message("--------目的地的值为:%s",lr_eval_string("{目的地}"));
    	web_url("reservations.pl",
    		"URL=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    		"Snapshot=t17.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("Search Flights Button",
    		"URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
    		"Snapshot=t16.inf",
    		"Mode=HTTP",
    		LAST);
    	web_url("nav.pl_3",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    		"Snapshot=t18.inf",
    		"Mode=HTTP",
    		LAST);
    
    	num=rand()%9 + 10;
    	sprintf(str1,"{所有目的地_%d}",num);//拼接字符   因为地址是参数所以用{}
    	lr_save_string(lr_eval_string(str1),"目的地");//赋值
    	lr_think_time(7);
    
    	web_submit_data("reservations.pl_2",
    		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
    		"Snapshot=t22.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=advanceDiscount", "Value=0", ENDITEM,
    		"Name=depart", "Value=Denver", ENDITEM,
    		"Name=departDate", "Value=08/20/2016", ENDITEM,
    		"Name=arrive", "Value={目的地}", ENDITEM,
    		"Name=returnDate", "Value=08/21/2016", ENDITEM,
    		"Name=numPassengers", "Value=1", ENDITEM,
    		"Name=seatPref", "Value=None", ENDITEM,
    		"Name=seatType", "Value=Coach", ENDITEM,
    		"Name=.cgifields", "Value=roundtrip", ENDITEM,
    		"Name=.cgifields", "Value=seatType", ENDITEM,
    		"Name=.cgifields", "Value=seatPref", ENDITEM,
    		"Name=findFlights.x", "Value=55", ENDITEM,
    		"Name=findFlights.y", "Value=5", ENDITEM,
    		LAST);
    	//lr_output_message("------arrive的值为:%s",lr_eval_string("arrive"));
    
    	lr_think_time(12);
    
    	web_submit_data("reservations.pl_3",
    		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Snapshot=t24.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=outboundFlight", "Value=031;224;08/20/2016", ENDITEM,
    		"Name=numPassengers", "Value=1", ENDITEM,
    		"Name=advanceDiscount", "Value=0", ENDITEM,
    		"Name=seatType", "Value=Coach", ENDITEM,
    		"Name=seatPref", "Value=None", ENDITEM,
    		"Name=reserveFlights.x", "Value=75", ENDITEM,
    		"Name=reserveFlights.y", "Value=4", ENDITEM,
    		LAST);
    
    	web_submit_data("reservations.pl_4",
    		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Method=POST",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
    		"Snapshot=t25.inf",
    		"Mode=HTTP",
    		ITEMDATA,
    		"Name=firstName", "Value=m", ENDITEM,
    		"Name=lastName", "Value=m", ENDITEM,
    		"Name=address1", "Value=m", ENDITEM,
    		"Name=address2", "Value=m", ENDITEM,
    		"Name=pass1", "Value=m m", ENDITEM,
    		"Name=creditCard", "Value=", ENDITEM,
    		"Name=expDate", "Value=", ENDITEM,
    		"Name=oldCCOption", "Value=", ENDITEM,
    		"Name=numPassengers", "Value=1", ENDITEM,
    		"Name=seatType", "Value=Coach", ENDITEM,
    		"Name=seatPref", "Value=None", ENDITEM,
    		"Name=outboundFlight", "Value=031;224;08/20/2016", ENDITEM,
    		"Name=advanceDiscount", "Value=0", ENDITEM,
    		"Name=returnFlight", "Value=", ENDITEM,
    		"Name=JSFormSubmit", "Value=off", ENDITEM,
    		"Name=.cgifields", "Value=saveCC", ENDITEM,
    		"Name=buyFlights.x", "Value=42", ENDITEM,
    		"Name=buyFlights.y", "Value=16", ENDITEM,
    		LAST);
    
    	lr_end_transaction("订票", LR_AUTO);
    
    	lr_start_transaction("退出");
    
    	lr_think_time(11);
    
    	web_url("welcome.pl_2",
    		"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
    		"Snapshot=t27.inf",
    		"Mode=HTTP",
    		LAST);
    
    
    	web_url("home.html_2",
    		"URL=http://127.0.0.1:1080/WebTours/home.html",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    		"Snapshot=t28.inf",
    		"Mode=HTTP",
    		LAST);
    
    	web_url("nav.pl_4",
    		"URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    		"Resource=0",
    		"RecContentType=text/html",
    		"Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    		"Snapshot=t29.inf",
    		"Mode=HTTP",
    		LAST);
    
    
    	lr_end_transaction("退出", LR_AUTO);
    
    return 0;
    }
    

    案例五 (选项随机化——使用指针)

      1 Action()
      2 {
      3     char *fly;
      4 
      5     web_url("WebTours",
      6         "URL=http://127.0.0.1:1080/WebTours/",
      7         "Resource=0",
      8         "RecContentType=text/html",
      9         "Referer=",
     10         "Snapshot=t1.inf",
     11         "Mode=HTTP",
     12         LAST);
     13 
     14 
     15     web_url("header.html",
     16         "URL=http://127.0.0.1:1080/WebTours/header.html",
     17         "Resource=0",
     18         "RecContentType=text/html",
     19         "Referer=http://127.0.0.1:1080/WebTours/",
     20         "Snapshot=t2.inf",
     21         "Mode=HTTP",
     22         LAST);
     23 
     24     web_url("welcome.pl",
     25         "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
     26         "Resource=0",
     27         "RecContentType=text/html",
     28         "Referer=http://127.0.0.1:1080/WebTours/",
     29         "Snapshot=t5.inf",
     30         "Mode=HTTP",
     31         LAST);
     32 
     33     web_url("home.html",
     34         "URL=http://127.0.0.1:1080/WebTours/home.html",
     35         "Resource=0",
     36         "RecContentType=text/html",
     37         "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
     38         "Snapshot=t6.inf",
     39         "Mode=HTTP",
     40         LAST);
     41 
     42 //Correlation comment - Do not change!Original value='119204.148643175zVDVfzDpDQfiDDDDDzHiQpDiADHf' Name ='CorrelationParameter_1'
     43     web_reg_save_param_ex(
     44         "ParamName=usersession",
     45         "LB=userSession value=",
     46         "RB=>
    <table border",
     47         SEARCH_FILTERS,
     48         "Scope=All",
     49         LAST);
     50     web_url("nav.pl",
     51         "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
     52         "Resource=0",
     53         "RecContentType=text/html",
     54         "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true",
     55         "Snapshot=t7.inf",
     56         "Mode=HTTP",
     57         LAST);
     58 
     59 
     60 
     61 
     62     lr_rendezvous("登录集合点");
     63 
     64     lr_start_transaction("登录");
     65 
     66     lr_think_time(15);
     67 
     68     web_submit_data("login.pl",
     69         "Action=http://127.0.0.1:1080/WebTours/login.pl",
     70         "Method=POST",
     71         "RecContentType=text/html",
     72         "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
     73         "Snapshot=t9.inf",
     74         "Mode=HTTP",
     75         ITEMDATA,
     76         "Name=userSession", "Value={usersession}", ENDITEM,
     77         "Name=username", "Value={username}", ENDITEM,
     78         "Name=password", "Value=123456", ENDITEM,
     79         "Name=JSFormSubmit", "Value=off", ENDITEM,
     80         "Name=login.x", "Value=53", ENDITEM,
     81         "Name=login.y", "Value=11", ENDITEM,
     82         LAST);
     83 
     84 
     85     web_url("nav.pl_2",
     86         "URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
     87         "Resource=0",
     88         "RecContentType=text/html",
     89         "Referer=http://127.0.0.1:1080/WebTours/login.pl",
     90         "Snapshot=t10.inf",
     91         "Mode=HTTP",
     92         LAST);
     93 
     94     web_reg_find("Text=Welcome, <b>{username}</b>, ",
     95         "Fail=NotFound",
     96         "SaveCount=登录次数",
     97         "Search=Body",
     98         LAST);
     99     web_url("login.pl_2",
    100         "URL=http://127.0.0.1:1080/WebTours/login.pl?intro=true",
    101         "Resource=0",
    102         "RecContentType=text/html",
    103         "Referer=http://127.0.0.1:1080/WebTours/login.pl",
    104         "Snapshot=t14.inf",
    105         "Mode=HTTP",
    106         LAST);
    107 
    108     if(atoi(lr_eval_string("{登录次数}")) >0){
    109     lr_end_transaction("登录", LR_PASS);
    110     }else{
    111     lr_end_transaction("登录", LR_FAIL);
    112     };
    113 
    114     lr_start_transaction("订票");
    115 
    116     lr_think_time(12);
    117 
    118 
    119 
    120 //Correlation comment - Do not change!Original value='London' Name ='CorrelationParameter_1'
    121     web_reg_save_param_ex(
    122         "ParamName=目的地",
    123         "LB=option value="",
    124         "RB=">",
    125         "Ordinal={randomnumber}",
    126         SEARCH_FILTERS,
    127         "Scope=All",
    128         LAST);
    129  
    130     web_url("reservations.pl",
    131         "URL=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
    132         "Resource=0",
    133         "RecContentType=text/html",
    134         "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    135         "Snapshot=t17.inf",
    136         "Mode=HTTP",
    137         LAST);
    138 
    139     web_url("Search Flights Button",
    140         "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    141         "Resource=0",
    142         "RecContentType=text/html",
    143         "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home",
    144         "Snapshot=t16.inf",
    145         "Mode=HTTP",
    146         LAST);
    147     web_url("nav.pl_3",
    148         "URL=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
    149         "Resource=0",
    150         "RecContentType=text/html",
    151         "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",
    152         "Snapshot=t18.inf",
    153         "Mode=HTTP",
    154         LAST);
    155 
    156     lr_think_time(7);
    157     lr_output_message("目的地的值是: ", lr_eval_string("目的地"));
    158 
    159 //Correlation comment - Do not change!Original value='040;350;08/20/2016' Name ='CorrelationParameter_1'
    160 
    161     web_reg_save_param_ex(
    162         "ParamName=所有航班星系",
    163         "LB=outboundFlight value=",
    164         "RB=08/20/2016",
    165         "Ordinal=all",
    166         SEARCH_FILTERS,
    167         "Scope=All",
    168         LAST);
    169 
    170     web_submit_data("reservations.pl_2",
    171         "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    172         "Method=POST",
    173         "RecContentType=text/html",
    174         "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
    175         "Snapshot=t22.inf",
    176         "Mode=HTTP",
    177         ITEMDATA,
    178         "Name=advanceDiscount", "Value=0", ENDITEM,
    179         "Name=depart", "Value=Denver", ENDITEM,
    180         "Name=departDate", "Value=08/20/2016", ENDITEM,
    181         "Name=arrive", "Value={目的地}", ENDITEM,
    182         "Name=returnDate", "Value=08/21/2016", ENDITEM,
    183         "Name=numPassengers", "Value=1", ENDITEM,
    184         "Name=seatPref", "Value=None", ENDITEM,
    185         "Name=seatType", "Value=Coach", ENDITEM,
    186         "Name=.cgifields", "Value=roundtrip", ENDITEM,
    187         "Name=.cgifields", "Value=seatType", ENDITEM,
    188         "Name=.cgifields", "Value=seatPref", ENDITEM,
    189         "Name=findFlights.x", "Value=55", ENDITEM,
    190         "Name=findFlights.y", "Value=5", ENDITEM,
    191         LAST);
    192 
    193 
    194     lr_think_time(12);
    195     fly=lr_paramarr_random("所有航班星系");
    196     lr_save_string(fly,"航班信息");
    197     lr_output_message("航班信息是:","{航班信息}");
    198 
    199     web_submit_data("reservations.pl_3",
    200         "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    201         "Method=POST",
    202         "RecContentType=text/html",
    203         "Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
    204         "Snapshot=t24.inf",
    205         "Mode=HTTP",
    206         ITEMDATA,
    207         "Name=outboundFlight", "Value=031;224;08/20/2016", ENDITEM,
    208         "Name=numPassengers", "Value=1", ENDITEM,
    209         "Name=advanceDiscount", "Value=0", ENDITEM,
    210         "Name=seatType", "Value=Coach", ENDITEM,
    211         "Name=seatPref", "Value=None", ENDITEM,
    212         "Name=reserveFlights.x", "Value=75", ENDITEM,
    213         "Name=reserveFlights.y", "Value=4", ENDITEM,
    214         LAST);
    215 
    216     web_submit_data("reservations.pl_4",
    217         "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
    218         "Method=POST",
    219         "RecContentType=text/html",
    220         "Referer=http://127.0.0.1:1080/WebTours/reservations.pl",
    221         "Snapshot=t25.inf",
    222         "Mode=HTTP",
    223         ITEMDATA,
    224         "Name=firstName", "Value=m", ENDITEM,
    225         "Name=lastName", "Value=m", ENDITEM,
    226         "Name=address1", "Value=m", ENDITEM,
    227         "Name=address2", "Value=m", ENDITEM,
    228         "Name=pass1", "Value=m m", ENDITEM,
    229         "Name=creditCard", "Value=", ENDITEM,
    230         "Name=expDate", "Value=", ENDITEM,
    231         "Name=oldCCOption", "Value=", ENDITEM,
    232         "Name=numPassengers", "Value=1", ENDITEM,
    233         "Name=seatType", "Value=Coach", ENDITEM,
    234         "Name=seatPref", "Value=None", ENDITEM,
    235         "Name=outboundFlight", "Value=031;224;08/20/2016", ENDITEM,
    236         "Name=advanceDiscount", "Value=0", ENDITEM,
    237         "Name=returnFlight", "Value=", ENDITEM,
    238         "Name=JSFormSubmit", "Value=off", ENDITEM,
    239         "Name=.cgifields", "Value=saveCC", ENDITEM,
    240         "Name=buyFlights.x", "Value=42", ENDITEM,
    241         "Name=buyFlights.y", "Value=16", ENDITEM,
    242         LAST);
    243 
    244 
    245 
    246     lr_end_transaction("订票", LR_AUTO);
    247 
    248     lr_start_transaction("退出");
    249 
    250     lr_think_time(11);
    251 
    252     web_url("welcome.pl_2",
    253         "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    254         "Resource=0",
    255         "RecContentType=text/html",
    256         "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights",
    257         "Snapshot=t27.inf",
    258         "Mode=HTTP",
    259         LAST);
    260 
    261 
    262     web_url("home.html_2",
    263         "URL=http://127.0.0.1:1080/WebTours/home.html",
    264         "Resource=0",
    265         "RecContentType=text/html",
    266         "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    267         "Snapshot=t28.inf",
    268         "Mode=HTTP",
    269         LAST);
    270 
    271     web_url("nav.pl_4",
    272         "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
    273         "Resource=0",
    274         "RecContentType=text/html",
    275         "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",
    276         "Snapshot=t29.inf",
    277         "Mode=HTTP",
    278         LAST);
    279 
    280 
    281     lr_end_transaction("退出", LR_AUTO);
    282 
    283 return 0;
    284 }
    View Code

    案例六 (选项随机化——使用字符串)

    //与案例五中使用指针的方法不同,这用的是字符数组存储变量
        int num;
        char str1[20];//用来存储取出的值
        num=rand()%9 + 10;//随机产生0-8的数字,加10后则随机产生10-18的数字
        sprintf( str1,"{所有目的地_%d}",num );//拼接字符,
        lr_save_string( lr_eval_string(str1),"目的地" );//变量不能直接使用必须用函数存储   
    

      

    二.登录脚本编写流程及注意事项

    1.流程

      编写方式:录制和手写(下面记录手写方式)

      需要工具:httpwatch 或者是 fiddler

    具体流程:

      执行一次登录,将请求通过抓包工具记录下来

      筛选请求:如果没有特别要求,图片等格式需求可以忽略

      将get请求写入脚本

      将post请求写入脚本  

      

      寻找检查点——登录成功的网页>查看源码>复制成功登录判断点

      插入检查点函数——放到请求登录成功网页的前面()

     web_reg_find("Text=Welcome, <b>test001</b>,",
                     "Savecount=登录计数",
                     LAST); 

      插入关联函数从服务器获得的动态参数

      位置:放在第一次出现session值的网页前

    web_reg_save_param_ex("Paramname=userSession",
    		    "LB=name=userSession value=",
    		     "RB=>",
    		      LAST); 

      添加if语句判断事务是否成功

      (必须先有一个开始事物

      (将结束事物替换为判断条件

    if(atoi(lr_eval_string("{登录计数}")) >0){
                lr_end_transaction("登录", LR_PASS);
        }else{
                lr_end_transaction("登录", LR_FAIL);
        }

     2.注意事项

    参数列表中设置选项选择312——唯一值,每次迭代更新

    三.执行

    工具——〉创建controler场景 如果出现错误检查是否注册码失效,或者用管理员运行LR

    开启windows服务 ——〉services.msc——〉Remote Registry改为手动,然后启动

    场景——〉集合(没有亮的话,回脚本界面 插入——〉集合 ,场景界面点击路径再重加载脚本 )

    运行——〉可用图——〉windonws资源图——〉右键添加度量——〉添加——〉输入自己电脑的ip

    四.分析结果

     未完待续。。

     备注:

    web_get_int_property(HTTP_INFO_RETURN_CODE); // HTTP_INFO_RETURN_CODE : HTTP返回的状态码,获取状态码值。

  • 相关阅读:
    二、VueRouter ---kkb
    一、Vue组件化 ---kkb
    React项目的一些配置以及插件
    四、React全家桶(二)
    三、React全家桶(一)
    二、React组件化
    扩展欧几里得算法(含严谨证明)
    bzoj4034 树上操作
    欧几里得算法(含严谨证明)
    noip2013 车站分级
  • 原文地址:https://www.cnblogs.com/maoxianfei/p/5777430.html
Copyright © 2011-2022 走看看