unittest02--运行测试

运行测试

unittest.main()
    自动调用以test开头的测试用例
    一般用于调试测试代码
    运行测试时,先按ASCII顺序对类名进行排序,再对每个类中的测试用例名按ASCII顺序排序,按照顺序执行测试用例

unittest运行机制

"""
    unittest运行机制
"""
import unittest # 导入unittest模块 免安装
class Demo3(unittest.TestCase):# 类名自定义,无需带test单词,括号中写法固定
    def test1(self):
        print('这是测试用例(实质上是类中的方法)test1')
    def test5(self):
        print('这是测试用例5')
    def show(self):
        print('这是show方法')
class Demo2(unittest.TestCase):
    def test3(self):#测试用例
        print('测试方法/这是测试用例3')
    def test4(self):
        print('这是测试用例4')
if __name__=='__main__':
    unittest.main()

使用unittest运行测试

在project_M1中修改login.py 与 signup.py文件

from project_M1.common import db,log,serverconf,casedata,postdata
def test_login():
    """
    测试登录接口
    :return:
    """
    # 数据库初始化
    db.DB().init_db(['login.sql'])
    # 读测试用例数据
    cases = casedata.read_cases('login.xlsx')  # 用例:用例名0、参数数据1、预期结果2
    # 读接口服务器地址
    host = serverconf.ServerConf().get_host()
    address = host + '/exam/login/'
    try:
        # 发送请求
        for case in cases:  # case代表一行用例
            case_name = case[0]  # 第0列,是用例名称
            argument = eval(case[1])  # 要发送的参数
            expect = case[2]  # 预期接口的返回结果
            postdata.post(address, argument, case_name, expect)
    except Exception as e:
        log.log().error('登录接口测试出错' + e)
if __name__=='__main__':#只有自己的文件才执行下面的代码,别人导入自己的文件后不执行
    unittest.main()#执行所有test开头的测试用例(类中的方法)
from project_M1.common import db,log,serverconf,casedata,postdata
import unittest
class Signup(unittest.TestCase):# 测试用例类  测试类
    def test_signup(self):# 必须test开头
        """
        测试注册接口
        :return:
        """
        # 数据库初始化(执行注册接口的初始化语句)
        db.DB().init_db(['signup.sql'])
        # 注册接口测试用例:signup.xlsx
        cases = casedata.read_cases('signup.xlsx')
        # 接口地址
        host = serverconf.ServerConf().get_host()
        address = host + '/exam/signup/'
        try:
            # 发送请求
            for case in cases:
                case_name = case[0]  # 用例名称
                argument = eval(case[1])  # 参数
                expect = eval(case[2])  # 预期接口返回结果
                sql = case[3]  # 预期sql
                dbexpect = case[4]  # 预期数据库行数
                # 发送请求
                postdata.post(address, argument, case_name, expect)
                # 落库检查
                db.DB().check_db(case_name,sql,argument,dbexpect)
        except Exception as e:
            log.log().error('注册接口测试出错' + e)

if __name__=='__main__':
    unittest.main()
上一篇:测试人如何快速进阶?这个测试框架必需要学!


下一篇:项目代号(名称)