httprunner踩坑記03-->debugtalk.py中的方法傳參


前言

     別把生活想得太重,別把自己看得太輕。

一、debugtalk.py介紹

  輔助函數,可在debugtalk.py文件中自定義函數,完成一些yml測試腳本完成不了的功能。

二、debugtalk.py 應用舉例

# debugtalk.py 中存在方法

# 產生1個自定義范圍的隨機數
def  get_randomint(n,m):
      return random.randint(n,m)

# 默認產生3個自定義范圍的隨機數(參數化時使用)
def get_randomints(n,m,count=3):
    random_list = []
    for i in range(0,count):
        random_list.append( random.randint(n,m) )
    return random_list

在測試用例文件中調用上述函數的格式如下:

- config:
    name: "驗證百度搜索是否正確"
    base_url: "https://www.baidu.com"
    variables:
      - search_word: ${get_randomint(1,20)}

- test:
    name: "百度搜索請求"
    request:
      url: "/s"
      method: GET
      headers:
        User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
        Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
        Accept-Encoding: "gzip, deflate, br"
        Accept-Language: "zh-CN,zh;q=0.9"
      params:
        wd: $search_word
    validate:
      - eq: ["status_code",200]

如上測試用例yml文件內容,在 config 的 variables 下 調用了debugtalk.py文件中的get_randomint函數。並把函數返回值傳遞給了定義的 search_word 變量。

三、debugtalk.py 傳參時的小問題

# debugtalk.py文件內容

def  pri(content):
      print(content)

通過上述代碼可以發現 debugtalk.py 文件中有一個輸出到控制台函數,需要傳入一個 content 參數,平時傳參用起來沒有問題。但如下面事例代碼時:

- config:
    name: 驗證能否打開主網頁
    base_url: http://www.hnxmxit.com
# 測試步驟
- test:
    name: open hnxmxit mainpage api
    setup_hooks:
       - ${pri(step_01:打開新夢想主頁)}
    request:
      url: /
      method: GET
    validate:
      - eq: ["status_code",200]

如上述代碼, setup_hooks中調用了pri方法,傳遞的參數中包含 英文 : 號,會導致調用該pri方法失效。類似的字符串有 [] 、: 。解決方法是去掉 : 等

四、小結

  歡迎廣大讀者們提出對該博客有遺慮的地方,或者有辦法解決上述問題的朋友都可以加V、QQ私聊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM