• python之用unittest实现接口参数化示例


    示例中获取参数的方法有三种:

    1. 从文件(txt)中读取参数

    2. 从Excel中读取参数

    3. 在代码中直接写参数

    def login(username,password):
        return 'ok'
    
    import unittest
    from parameterized import parameterized
    import BeautifulReport as bf
    import xlrd,xlwt
    
    
    def file_to_list(file_name): #从文件中读取参数
        l = []
        with open(file_name,encoding='utf-8') as fr:
            for line in fr:
                line_list = line.strip().split(',')
                l.append(line_list)
        return l
    
    
    def excel_to_list(file_name): #从Excel中读取参数
        l=[]
        book=xlrd.open_workbook(file_name)
        sheet=book.sheet_by_index(0)
        for row in range(1,sheet.nrows):#从第一行开始取值,取到最后一行
            l.append(sheet.row_values(row))#将每行的数据存入大列表中,每行数据都是一个list
        return l
    
    class TestLogin(unittest.TestCase): #在代码中写入参数
        @parameterized.expand([
            ['admin','1244','ok'],
            ['admin','1244','ok'],
            ['admin','1244','success'],
            ['admin','1244','success'],
            ])
        def test_login1(self,username,password,hope):
            '''登录'''
            result = login(username,password)
            self.assertEqual(hope,result)
    
        @parameterized.expand(file_to_list('register_data.txt')) #从文件中读取参数
        def test_reg(self,username,password):
            '文件注册'
            print(username,password)
    
        @parameterized.expand(excel_to_list('reg_data.xls')) #从Excel中读取数据
        def test_reg1(self,username,password):
            'Excel注册'
            print(username,password)
    
    # unittest.main()
    runner = bf.BeautifulReport(unittest.makeSuite(TestLogin))
    runner.report(description='登录测试用例',filename='login.html')

    以上代码执行结果:

    ..FF...............
    测试已全部完成, 可前往E:Python学习pycharmpython脚本day12查询测试报告

    生成的报告如入:

  • 相关阅读:
    关闭webstorm自动保存,并显示文件未保存标识
    ionic1.3.3 下拉刷新 上拉加载更多
    纯css导航下划线跟随效果【转载】
    wpf获取模板化控件中的动画。
    wpf中dropdownButton控件下拉居中。。。
    C#综合揭秘——深入分析委托与事件
    反射
    多线程,异步
    wcf,socket,数据传输方式
    面向对象五大原则三个基本特征
  • 原文地址:https://www.cnblogs.com/denise1108/p/10341322.html
Copyright © 2020-2023  润新知