unittest学习之yaml文件读取学习

一、yaml文件格式注意事项
1、字符串不需要用引号
2、冒号两边最好要有空格
3、只能返回一个整体

demo:
	model:登录
	data:
		username:ww
		pwd:123

4、或者每组数据用‘-’隔开,一个-就是一组数据

-
  model: 注册模块
  title: 注册成功
  url: http://api.nnzhp.cn/api/user/user_reg
  method: POST
  data:
    username: yingcr10
    pwd: Ace123456
    cpwd: Ace123456
  check:
    error_code: 0
    msg: 注册成功!
-
  model: 注册模块
  title: 用户名长度小于6位,注册失败
  url: http://api.nnzhp.cn/api/user/user_reg
  method: POST
  data:
    username: yingc
    pwd: Ace123456
    cpwd: Ace123456
  check:
    error_code: 3002

二、读取完后,运行出错,经排查居然是因为用例名称命名的问题
读取yaml文件必须是test开头,测试用例必须是test结尾???现在还搞不清楚啥原因!难道是只有这样才能当成一个测试用例?
代码如下:

@ddt
class MyddtTest(unittest.TestCase):
    #读取yaml文件后进行测试验证
    @file_data("../data/get_token.yaml")
    def test_get_yaml(self,model,title,url,method,params,expect_errcode):
        model = model
        title = title
        url = url
        method = method
        params = params
        expect_errcode = expect_errcode
        print(model,title,url,method,params,expect_errcode,sep='\n')
        self.login_test(model,title,url,method,params,expect_errcode)

    def login_test(self,model,title,url,method,params,expect_errcode):
        print("测试模块:",model)
        print("测试标题:",title)

        res = requests.request(method=method,url=url,params=params).text
        res = json.loads(res)
        try:
            # 通过断言,判断测试是否通过
            assert expect_errcode == res['errcode']
            print("测试通过")
        except Exception as e:
            print("测试失败")
            raise e

if __name__ == '__main__':
    unittest.main()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里给出一个可能的unittest写法,假设我们已经有了一个名为dtxml的模块,其中包含了读写dtxml文件的函数read_dtxml和write_dtxml: ```python import unittest from dtxml import read_dtxml, write_dtxml class TestDtxml(unittest.TestCase): def setUp(self): # 创建测试用的临时文件 self.filename = 'test.dtxml' with open(self.filename, 'w') as f: f.write('<root><node1><leaf1>value1</leaf1></node1><node2><leaf2>value2</leaf2><leaf3>value3</leaf3></node2></root>') def tearDown(self): # 删除测试用的临时文件 import os os.remove(self.filename) def test_read_dtxml(self): # 测试读取dtxml文件 data = read_dtxml(self.filename) self.assertEqual(data, {'root': {'node1': {'leaf1': 'value1'}, 'node2': {'leaf2': 'value2', 'leaf3': 'value3'}}}) def test_write_dtxml(self): # 测试写入dtxml文件 data = {'root': {'node1': {'leaf1': 'value1'}, 'node2': {'leaf2': 'value2', 'leaf3': 'value3'}}} write_dtxml(data, self.filename) with open(self.filename, 'r') as f: content = f.read() self.assertEqual(content, '<root><node1><leaf1>value1</leaf1></node1><node2><leaf2>value2</leaf2><leaf3>value3</leaf3></node2></root>') ``` 在这个测试中,我们先在setUp函数中创建了一个测试用的临时文件test.dtxml,并在其中写入了一个简单的dtxml格式的数据。然后我们定义了两个测试函数test_read_dtxml和test_write_dtxml,分别测试读取和写入dtxml文件的函数。 在test_read_dtxml函数中,我们调用了read_dtxml函数读取测试用的临时文件,然后使用assertEqual函数判断读取的数据是否和预期的一致。在这个例子中,我们预期读取的数据是一个字典类型,其结构为{'root': {'node1': {'leaf1': 'value1'}, 'node2': {'leaf2': 'value2', 'leaf3': 'value3'}}}。 在test_write_dtxml函数中,我们先定义了一个字典类型的数据,然后调用了write_dtxml函数将其写入测试用的临时文件。接着我们使用open函数读取文件的内容,并使用assertEqual函数判断读取的内容是否和预期的一致。在这个例子中,我们预期读取的内容应该和我们在setUp函数中手动写入的内容一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值