zoukankan      html  css  js  c++  java
  • 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文件中执行

  • 相关阅读:
    week4
    week3
    2017福州大学面向对象程序设计寒假作业二
    Week2
    10个android开发必备的开源项目
    Day Ten
    Day Nine
    Day Eight
    Day Seven
    Day Six
  • 原文地址:https://www.cnblogs.com/qican/p/13297917.html
Copyright © 2011-2022 走看看