python接口测试-unittest模块

python接口测试-unittest模块



断言
    assert 条件语句:
        条件成立,没有任何返回,直接执行下一行代码
        条件不成立,会报断言异常

1、写好测试方法

2、创建测试类(继承unittest.Testcast)
    1、写好传入参数、预期结果
    2、接收实际结果
    3、使用unittest断言,比较预期结果与实际结果

    测试用例类:
    只要定义的类继承与unittest.Testcast那么这个类就是测试用例类
    测试用例写法:
        在测试用例类中定义以test开头的方法就是一条测试用例
    unittest断言:
        self.assertEqual(预期结果, 实际结果)

3、使用
# 1、建一个测试套件
测试套件:unittest.Testsuite
    unittest.Testsuite这个类创建的的对象就是测试套件
    例子:suite = unittest.TestSuite()
# 2、将测试用例加载到测试套件中
    1、一条一条添加
        # 创建测试用例对象的时候,必须要传入用例的方法名
        # 创建一条测用例
        case1 = Login_123("test_login")
        # 将用例添加到套件中
        suite.addTest(case1)
    2、通过测试用例类进行添加
        #创建一个用例类进行添加
        loader = unittest.TestLoader()
        suite.addTest(loader.loadTestsFromTestCase(LoginTest))
    3、通过测试用例模块进行添加
        loader = unittest.TestLoader()
        suite.addTest(loader.loadTestsFromModule(Login2))
    4、通过路径去进行加载(默认会加载该路径下面所有以test开头的模块中的测试用例,可以通过pattern这个参数指定模块名匹配规则)
        loader = unittest.TestLoader()
        suite.addTest(loader.discover("C:\Users\Administrator\PycharmProjects\人类毁灭计划\Interface_automation"), pattern = '*.py')



# 3、执行测试用例(需要创建一个测试运行程序)
测试运行程序:unittest.TextTestRunner
    unittest.TextTestRunner这个类创建的的对象就是测试运行程序(执行测试用例)
    runner = unittest.TextTestRunner()
    runner.run(suite)




测试用例执行的顺序:根据用例的方法名,安装ASCII码进行排序的(不是根据定义的先后顺序)

个人理解的测试顺序----有错也死不悔改

  • 首先有功能实现方法
# 简单的登录功能
def Login_123(user_name=None, password=None):
    if user_name != None and password != None:
        if user_name == "nicholas" and password == "123456":
            return {"code": 0, "msg": "登录成功"}
        else:
            return {"code": 1, "msg": "登录失败"}

    else:
        return {"code": 1, "msg": "登录失败"}
  • 创建一个测试类,写好测试用例,方法以test开头方便后续调用unittest模块使用(一个方法一个测试用例)
class LoginTest(unittest.TestCase):
    def test_login(self):
        data = ("nicholas", "123456")
        expected = {"code": 0, "msg": "登录成功"}
        res = Login_123(*data)
        self.assertEqual(expected, res)

    def test_login_usernameisNone(self):
        data = ("", "123456")
        expected = {"code": 1, "msg": "登录失败"}
        res = Login_123(*data)
        self.assertEqual(expected, res)

使用unittest模块测试用例
分为三步
1、创建一个测试套件
2、将测试用例加载到套件中---------四种方式
3、执行测试用例

1、建一个测试套件

suite = unittest.TestSuite()

2、将测试用例加载到测试套件中

2.1、一条一条添加

case1 = LoginTest("test_login")
case2 = LoginTest("test_login_usernameisNone")
suite.addTest(case1)
suite.addTest(case2)

2.2、通过测试用例类进行添加

loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(LoginTest))

2.3 通过测试用例模块进行添加

loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromModule(Login2))

2.4 通过路径去进行加载(默认会加载该路径下面所有以test开头的模块中的测试用例,可以通过pattern这个参数指定模块名匹配规则)

# 有问题,我的会报错,可能跟有中文目录有关
loader = unittest.TestLoader()
suite.addTest(loader.discover("C:\Users\Administrator\PycharmProjects\人类毁灭计划\Interface_automation"), pattern = '*.py')

3、执行测试用例(需要创建一个测试运行程序)

# 使用unittest执行用例
runner = unittest.TextTestRunner()
runner.run(suite)

大佬提供的HTMLTestRunnerNew模块地址:
https://blog.csdn.net/weixin_45912307/article/details/110252894

# 使用HTMLTestRunnerNew第三方库执行后生产一个html文件,可以用浏览器打开
runner = HTMLTestRunner(stream=open("htm.html", "wb", encoding="utf-8"))
runner.run(suite)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值