requests---通過file_data方法請求yaml數據


 前面介紹了通過ddt的方法請求yaml數據,當時我們用的方法是直接ddt.data的方法去讀取的,也非常簡單,今天我們通過ddt方法中的file_data讀取數據

file_data

file_data屬於ddt庫中的一個方法,主要作用在安靜這邊理解就是讀取json或者是yaml結尾的文件。

源碼:

def file_data(value):
    """
   方法裝飾器添加到您的測試方法中。
應該添加到' ' unittest.TestCase ' '實例的方法中。
' ' value ' '應該是相對於文件目錄的路徑
包含修飾過的' ' unittest.TestCase ' '。該文件
應該包含JSON編碼的數據,可以是列表或
字典
對於列表,列表中的每個值對應一個
測試用例,值將連接到測試方法
的名字。
對於dict,鍵將用作名稱的后綴
測試用例,值將作為測試數據提供。

    """
    def wrapper(func):
        setattr(func, FILE_ATTR, value)
        return func
    return wrapper

小試牛刀

這里還用上次的那個接口來做。詳情見:requests---通過yaml+ddt封裝測試數據

yaml文件

配置測試用例。

test01:
  -
    url: http://apis.juhe.cn/simpleWeather/query
    test_name: 正確的key和正確的city
    key:  331eab8f3481f37868378fcdc76cb7cd
    city:  上海
    cake: 查詢成功
  -
    url: http://apis.juhe.cn/simpleWeather/query
    test_name: 正確的key和錯誤的city
    key:  331eab8f3481f37868378fcdc76cb7cd
    city:  未知地
    cake: 暫不支持該城市

執行文件

這里安靜先對請求的接口進行封裝,然后在通過file_data進行讀取yaml文件,因為這里又兩條用例,所以通過for依次進行讀取。最后進行斷言調試

import requests
import ddt
import unittest

@ddt.ddt
class Test(unittest.TestCase):
    # 封裝接口
    def select(self,url,key,city):
        data = {
             "key":key,
            "city":city
        }
        r = requests.post(url,data=data)
        return r
    # 請求數據
    @ddt.file_data('data.yaml')
    def test_01(self,value):
        for  i in value:
            url = i.get('url')
            key = i.get('key')
            city = i.get('city')
            cake = i.get('cake')
            result = Test().select(url=url,key= key,city= city).text
            self.assertIn(cake,result)

if __name__ == '__main__':
    unittest.main()

這里安靜通過file_data讀取yaml數據,我們也可以通過file_data進行讀取json文件,然后測試數據放入到json文件中執行

 


免責聲明!

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



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