• LR学习笔记14-脚本编写实践过程


    测试脚本和开发一样,并不是一蹴而就的,通常要经过代码评审、编码、和测试等流程后,才会趋于稳定。VU脚本也需要调试、修改才能使得它更加完美。另外请注意解决测试脚本不仅要求你有过硬的技术,还要明确测试流程。

    1.那么脚本编写的最佳流程应该是怎样的?请看:

    最佳流程实践

    (1)Generate:录制或开发脚本

    (2)SUSI(Single  User Single Iteration,单用户单循环):运行录制生成的脚本,解决可能存在的关联问题。

    (3)SUMI(Single  User Multi Iterations,单用户多循环):参数化脚本,在Run-Time Settings中设置Iteration,再次运行,验证参数化问题。

    (4)MUSI(Multi  User Single Iterations,多用户单循环):Controller里多用户运行脚本,验证脚本中可能的多线程同步问题。

    (5)MUMI(Multi  User Multi Iteration,多用户多循环):即性能测试的开始。

    其中我们可以明确看出,第(1)、(2)、(3)是在Vuser中完成的,(4)、(5)是在Controller中完成的。

    2.按照最佳流程实践做以下实例:

    使用VU录制web Tours(机票预订网站),完成一个完整的机票预订流程,包括登陆、选择预订条件、下订单。具体要求如下:

    (1)按照最佳实践流程的(1)、(2)、(3)来完成脚本。

    录制的原脚本如下:

    Action()
    {
    
        web_url("tk.gif", 
            "URL=http://addons.g-fox.cn/tk.gif?when=run&r=0.019928641629045396", 
            "TargetFrame=", 
            "Resource=1", 
            "RecContentType=image/gif", 
            "Referer=", 
            "Snapshot=t1.inf", 
            LAST);
    
        web_url("qvod-hao123.gif", 
            "URL=http://addons.g-fox.cn/qvod-hao123.gif?c=http%3A%2F%2F127.0.0.1%3A1080%2FWebTours%2F&r=0.5120322058432332", 
            "TargetFrame=", 
            "Resource=1", 
            "RecContentType=image/gif", 
            "Referer=", 
            "Snapshot=t2.inf", 
            LAST);
    
        web_add_cookie("uid=38oGGVZ+d3CIW0zdBBKNAg==; DOMAIN=i.g-fox.cn");
    
        web_url("coba_official_v2.json", 
            "URL=http://i.g-fox.cn/notification/coba_official_v2.json", 
            "TargetFrame=", 
            "Resource=1", 
            "RecContentType=application/json", 
            "Referer=", 
            "Snapshot=t3.inf", 
            LAST);
    
        web_url("adu.gif", 
            "URL=http://adu.g-fox.cn/adu.gif?channelid=www.firefox.com.cn&fxversion=32.0.1&ceversion=&ver=2_2&pk=%7Bd3c72884-7347-4670-9212-879a13a350f6%7D&uk=%7B4f29b2c6-db66-4dcd-ac4a-e548e110fce4%7D&cehome=false&locale=zh-CN&moexts=cpmanager,cehomepage,share_all_cn,coba,quicklaunch,commonfix,wx-assistant&age=628&default=false&defaultHttp=false&flash=25.0.0.148&now=1503560881981", 
            "TargetFrame=", 
            "Resource=1", 
            "RecContentType=image/gif", 
            "Referer=", 
            "Snapshot=t4.inf", 
            LAST);
    
        web_url("adu-new.gif", 
            "URL=http://adu.g-fox.cn/adu-new.gif?ver=2_2&now=1503560881983&channelid=www.firefox.com.cn&fxversion=32.0.1&ceversion=&locale=zh-CN&age=628&pk=%7Bd3c72884-7347-4670-9212-879a13a350f6%7D&uk=%7B4f29b2c6-db66-4dcd-ac4a-e548e110fce4%7D&ude=true&default=false&defaultHttp=false&cehome=false&flash=25.0.0.148&moexts=cpmanager:1.5.14,cehomepage:0.10.47.3,share_all_cn:0.22,coba:1.0.35,quicklaunch:1.1.8,commonfix:0.13,wx-assistant:1.1.5&fxa=true", 
            "TargetFrame=", 
            "Resource=1", 
            "RecContentType=image/gif", 
            "Referer=", 
            "Snapshot=t5.inf", 
            LAST);
    
        lr_think_time(6);
    
        web_url("WebTours", 
            "URL=http://127.0.0.1:1080/WebTours/", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Mode=HTML", 
            EXTRARES, 
            "Url=http://addons.g-fox.cn/firstLocation.gif?p=false&a=false&e=false&bsp=1&r=0.5001782111218975", "Referer=", ENDITEM, 
            LAST);
    
        web_url("header.html", 
            "URL=http://127.0.0.1:1080/WebTours/header.html", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/", 
            "Mode=HTML", 
            LAST);
    
        web_url("getcontentnew", 
            "URL=http://front.meimotuan.com/api/getcontentnew?callback=jQuery18308711439516326664_1503560891673&guid=ZZ2FA3B363A1982A803A50A149BA5FAE&_=1503560891683", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/", 
            "Snapshot=t6.inf", 
            "Mode=HTML", 
            LAST);
    
        web_url("welcome.pl", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/", 
            "Snapshot=t7.inf", 
            "Mode=HTML", 
            LAST);
    
        web_add_cookie("renren_tag_0526=isTag; DOMAIN=127.0.0.1");
    
        lr_think_time(14);
    
        web_submit_data("login.pl", 
            "Action=http://127.0.0.1:1080/WebTours/login.pl", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
            "Snapshot=t8.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=userSession", "Value=121795.131065209zcztiDHpAftVzzzHDHfiQpAccDcf", ENDITEM, 
            "Name=username", "Value=wang", ENDITEM, 
            "Name=password", "Value=wang123456", ENDITEM, 
            "Name=login.x", "Value=39", ENDITEM, 
            "Name=login.y", "Value=3", ENDITEM, 
            "Name=JSFormSubmit", "Value=on", ENDITEM, 
            LAST);
    
        lr_think_time(4);
    
        web_url("Search Flights Button", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search", 
            "TargetFrame=body", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t9.inf", 
            "Mode=HTML", 
            LAST);
    
        web_add_cookie("Hm_lvt_dd4738b5fb302cb062ef19107df5d2e4=1487677640; DOMAIN=cclv.firefoxchina.cn");
    
        web_url("Search Flights Button_2", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search", 
            "TargetFrame=body", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", 
            "Snapshot=t10.inf", 
            "Mode=HTML", 
            EXTRARES, 
            "Url=http://cclv.firefoxchina.cn/cclv/v2/patterns.json", "Referer=", ENDITEM, 
            LAST);
    
        web_submit_data("reservations.pl", 
            "Action=http://127.0.0.1:1080/WebTours/reservations.pl", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome", 
            "Snapshot=t11.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=advanceDiscount", "Value=0", ENDITEM, 
            "Name=depart", "Value=London", ENDITEM, 
            "Name=departDate", "Value=08/25/2017", ENDITEM, 
            "Name=arrive", "Value=Paris", ENDITEM, 
            "Name=returnDate", "Value=08/26/2017", ENDITEM, 
            "Name=numPassengers", "Value=1", ENDITEM, 
            "Name=seatPref", "Value=Aisle", ENDITEM, 
            "Name=seatType", "Value=Coach", ENDITEM, 
            "Name=findFlights.x", "Value=42", ENDITEM, 
            "Name=findFlights.y", "Value=10", ENDITEM, 
            "Name=.cgifields", "Value=roundtrip", ENDITEM, 
            "Name=.cgifields", "Value=seatType", ENDITEM, 
            "Name=.cgifields", "Value=seatPref", ENDITEM, 
            LAST);
    
        web_add_cookie("Hm_lvt_dd4738b5fb302cb062ef19107df5d2e4=1487677640; DOMAIN=e.firefoxchina.cn");
    
        web_submit_data("reservations.pl_2", 
            "Action=http://127.0.0.1:1080/WebTours/reservations.pl", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/reservations.pl", 
            "Snapshot=t12.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=outboundFlight", "Value=240;108;08/25/2017", ENDITEM, 
            "Name=numPassengers", "Value=1", ENDITEM, 
            "Name=advanceDiscount", "Value=0", ENDITEM, 
            "Name=seatType", "Value=Coach", ENDITEM, 
            "Name=seatPref", "Value=Aisle", ENDITEM, 
            "Name=reserveFlights.x", "Value=43", ENDITEM, 
            "Name=reserveFlights.y", "Value=10", ENDITEM, 
            EXTRARES, 
            "Url=http://e.firefoxchina.cn/skipsb/v1/urls.json", "Referer=", ENDITEM, 
            LAST);
    
        lr_think_time(44);
    
        web_submit_data("reservations.pl_3", 
            "Action=http://127.0.0.1:1080/WebTours/reservations.pl", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/reservations.pl", 
            "Snapshot=t13.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=firstName", "Value=wa", ENDITEM, 
            "Name=lastName", "Value=ng", ENDITEM, 
            "Name=address1", "Value=河北", ENDITEM, 
            "Name=address2", "Value=北京", ENDITEM, 
            "Name=pass1", "Value=王中", ENDITEM, 
            "Name=creditCard", "Value=88996688", ENDITEM, 
            "Name=expDate", "Value=11/12", ENDITEM, 
            "Name=saveCC", "Value=on", ENDITEM, 
            "Name=oldCCOption", "Value=on", ENDITEM, 
            "Name=numPassengers", "Value=1", ENDITEM, 
            "Name=seatType", "Value=Coach", ENDITEM, 
            "Name=seatPref", "Value=Aisle", ENDITEM, 
            "Name=outboundFlight", "Value=240;108;08/25/2017", ENDITEM, 
            "Name=advanceDiscount", "Value=0", ENDITEM, 
            "Name=returnFlight", "Value=", ENDITEM, 
            "Name=JSFormSubmit", "Value=off", ENDITEM, 
            "Name=buyFlights.x", "Value=4", ENDITEM, 
            "Name=buyFlights.y", "Value=7", ENDITEM, 
            "Name=.cgifields", "Value=saveCC", ENDITEM, 
            LAST);
    
        lr_think_time(11);
    
        web_url("Home Button", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=menus", 
            "TargetFrame=body", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t14.inf", 
            "Mode=HTML", 
            LAST);
    
        web_url("Home Button_2", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=menus", 
            "TargetFrame=body", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights", 
            "Snapshot=t15.inf", 
            "Mode=HTML", 
            LAST);
    
        web_url("SignOff Button", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", 
            "TargetFrame=body", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t16.inf", 
            "Mode=HTML", 
            LAST);
    
        web_add_cookie("MSO=SID&1503560893&MSO_JSFormSubmit1&on&MSO_ServerErrorsProb&50&MSO_ServerLoadProb&50; DOMAIN=127.0.0.1");
    
        web_add_cookie("MTUserInfo=firstName&wa&username&wang&address2&beijing&hash&39&expDate&11%2F12&creditCard&88996688&address1&hebei&lastName&ng%0A; DOMAIN=127.0.0.1");
    
        web_url("SignOff Button_2", 
            "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", 
            "TargetFrame=body", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", 
            "Snapshot=t17.inf", 
            "Mode=HTML", 
            LAST);
        lr_output_message("脚本执行成功,我就打印出来!");
    
        return 0;
    }

    (2)按照关联实践,查看是否有需要关联的数据。

    对于关联这里:因为我单用户单循环,单用户多循环都没有报错,所以没有进行关联。

    所以只对订票日期和座位位置坐了参数化。

    (3)能够在Controller中实现5个用户并发,选择不同的条件预订机票,考虑VU参数表应该怎样设计,怎样修改脚本,并通过设置迭代次数来验证参数表机制。

    这部分后续学习了补上~~~嘿哈

     

     

     

     

     

     

  • 相关阅读:
    exit()和_exit()函数(转)
    C语言struct内存占用问题 (转)
    C语言中memset函数(转)
    STDIN_FILENO与stdin区别(转)
    stderr,strerror,errno,perror,论坛大神的回答!
    C++ 函数模版
    C++ 内置函数
    offsetof
    LockSupportDemo
    读写锁,await和signa
  • 原文地址:https://www.cnblogs.com/haibaowang/p/7423351.html
Copyright © 2020-2023  润新知