• WebLoad 脚本的用法


    WebLoad 对于模拟一个HTTP 请求,一般都是 由以下三部分组成,并把这三部分包在一个Transaction里(从BeginTransation 到 EndTransaction 为止):
     
    1. request header or cookie
    a) request header, 即发送HTTP请求时所附带的头部,一般Post请求需要头部为多,由以下方法构成
    wlHttp.Header["key"] = "value"
    例子,RPS2 项目的请求都需要添加一个 特殊头部 "When calling RPS2, for each call, you must also include a http header with x-product-code:retail_phoenix", 所以这个请求头部的是:
    wlHttp.Header["x-product-code"] = "retail_phoenix"
    b) cookie,有时候发送HTTP 请求需要包含一个登陆或者是用户信息的cookie,而当带有cookie的请求时WL 不能录制,需要自己手动添加代码, 添加cookie的方法是wlCookie.Set(name, value, domain, path [, expire])
    例子,RPS 需要的请求需要包含一个 mstar=V63LP207K0564O7267263N3512P365O6KOL18OL2L034KL02820 的cookie,则调用cookie的方法是:
    wlCookie.Set("mstar", "V63LP207K0564O7267263N3512P365O6KOL18OL2L034KL02820", "http://scdispqaweb.morningstar.com","/", ""), 
    其中cookie可以放在一个txt的文件中,然后参数化,则有
    wlCookie.Set("mstar", dataMap_cookie.getValue(), "http://scdispqaweb.morningstar.com","/", "")
     
    Note: 曾经犯过一个错,就是把cookie放在request header里,即使用wlHttp.Header["cookie"] = "mstar=...."
     
    2. request content ( and content type )
    发送HTTP 请求,特别是Post请求,一般都要发送一些请求内容或者提交一些表单。WL 提供三种提交表单或发送请求体的方法
    a). FormData
         FormData 属于wlHttp对象的属性,使用的格式可以有两种,wlHttp.FormData["key"] = "value" or wlHttp.FormData.key = "value"
    例子,wlHttp.FormData["Login"] = "tom.weng@morningstar.com"
             wlHttp.FormData["Password"] = "Mstar123" 
    or
                wlHttp.FormData.Login = "tom.weng@morningstar.com"
                wlHttp.FormData.Password = "Mstar123"
     
    Note: the difference is that The wlHttp.FormData["key"] notation also supports spaces in the name, 
    for example, wlHttp.FormData["First Name"].
     
    b). Data
        This method is used to submit a string that is not a standard HTML form and cannot be represented by       
        FormData. It has two subfields:
    Data.Type – The MIME type for the submission
    Data.Value – The string to submit
    和 FormData 一样,它也可以有两种表达方式: 
    wlHttp.Data.Type = "value";
    wlHttp.Data.Value = "value";  
    或者
    wlHttp.Data["Type"] = "value"
    wlHttp.Data["Value"] = "value"
     
    例子:wlHttp.Data.Type = "application/x-www-form-urlencoded"
    wlHttp.Data.Value = "email=pms.advisor9@morningstar.com&strPassword=Mstar123&Login=1&rbtn=btnEmail&rnd=(new Random()).NextDouble().ToString()&ProductCode=AWSOE&ProductID=AWSOE"
    或者
    wlHttp.Data["Type"] = "application/json; charset=UTF-8"
    wlHttp.Data["Value"] = "{"Name": "tom weng", "Number": 1024, "Title": "QA Engineer" }"
     
    注意: 当用Data 方面时,Value 属性是必须的,即必须有 Data["Value"] 或 Data.Value
     
    c). DataFile
    DataFile 的作用主要是: 当Post 请求的 请求体内容太大的话,为方便脚本的维护,把请求内容放到一个外部文件中,然后通过DataFile 这个方法导入外部文件。而不需把整一大段Post请求内容放到脚本里。
    同样的,DataFile也支持两种表达方式:
    wlHttp.DataFile.Type = "value"; 
    wlHttp.DataFile.Filename = "value"
    or
    wlHttp.DataFile["Type"] = "value";      wlHttp.DataFile["Filename"] = "value"
     
    例子:
    wlHttp.Header["X-API-UserId"] = "d5b04f19-e16b-4963-a6c1-faac4624fb48"
    wlHttp.Header["X-API-ProductId"] = "Direct"
    //wlHttp.DataFile.Type = "application/json; charset=UTF-8"
    //wlHttp.DataFile.Filename = "D:\Load Test\Tom\DataFileTest\datafile.txt"
    wlHttp.DataFile["Type"] = "application/json; charset=UTF-8"
    wlHttp.DataFile["Filename"] = "D:\Load Test\Tom\DataFileTest\datafile.txt"
    wlHttp.Post("http://api-data-stg.morningstar.com/v2/lists")
     
    上面的例子,我把Post的请求内容(Json格式)放到了一个叫 datafile 的 txt 文件里,然后通过 wlHttp.DataFile.Filename 这个方法把该文件引进来。
     
    ContentType:
    Description : Specifies the content type of the HTTP request.
    Note: content type 可做作为 request header field, 也可以作为wlHttp的属性单独来使用
    wlHttp.Header["Content-type"] = "application/x-amf" 
    wlHttp.ContentType = "application/x-www-form-urlencoded"
     
    3. request 
    一般HTTP 请求为:Get,Post,Put, Delete.... WL 相应提供了这几种方法,也是属于wlHttp 对象
    wlHttp.Get("URL");
    wlHttp.Post("URL");
    wlHttp.Put("URL");
    wlHttp.Delete("URL")
    例子:
    wlHttp.Get("http://www.baidu.com")
    wlHttp.Post("http://mcsvqaap-cloud.morningstar.com/DataService/api/v2/entity/columnsets")
    wlHttp.Put("http://api-data-stg.morningstar.com/v2/columnSets/" + IDMap_ColumnSet_ID.getValue())
    wlHttp.Delete("http://api-data-stg.morningstar.com/v2/columnSets/" + corr_Morningstar_columnsetID_3)
     
    validation
    最后是验证
  • 相关阅读:
    云原生时代,微服务到底应该怎么玩儿?
    坐上机器猫的时光机,来一场科技穿越之旅吧
    喜讯|京东荣获2019 【中国技术品牌影响力企业】
    非洲正在打造一个与硅谷完全不同的人工智能产业
    DevOps专题|基础Agent部署系统
    《编写可读代码的艺术》总结
    《Effective Java第二版》总结
    MySQL之备份和还原
    MySQL之Xtrabackup的使用
    MySQL之mysqldump的使用
  • 原文地址:https://www.cnblogs.com/tomweng/p/4140674.html
Copyright © 2020-2023  润新知