unittest框架最核心的四个概念:
一、unittest中测试用例的编写规范
在测试类当中,以test_开头,定义测试函数
每一个test_开头的函数,就是一个测试用例
用例编写步骤:
1 导入unittest模块,被测文件或者其中的类
2 创建一个测试类,并继承unittest模块中的TestCase类
3 定义测试函数,函数名以test_开头(一个test开头的方法就是一条测试用例)
4 将测试用例执行的代码逻辑写到对应的测试方法中:
第一步:准备用例数据
第二步: 调用被测的功能函数(发送请求调用接口),获取实际结果
第三步: 断言,预期结果与实际结果的对比
下面编写测试登陆功能的测试用例:
登录的功能逻辑定义在login模块里
import unittest # 引入 unittest
from python01.python02.login import login_check # 导入login模块的登录函数
class TestLogin(unittest.TestCase): # 定义测试类,继承unittest.TestCase
def test_login_ok(self): # 用例1
# 第一步:准备用例数据
params = {
'username': "cyy", "password": 123456}
expected = {
"code":0,"msg":"登录成功"}
# 第二步:调用被测的功能函数(发送请求调用接口),获取实际结果
result = login_check(**params)
# 第三步:断言
self.assertEqual(result, expected)
上述只是执行了一条用例,下面再看下五条用例的:
用例1 账号密码正确
入参:账号cyy,密码:123456
预期结果:{“code”:0,“msg”:“登录成功”}
实际结果:
用例2 账号正确,密码错误
入参:账号cyy,密码:fdgg
预期结果:{“code”:1,“msg”:“账号或密码不正确”}
实际结果:
用例3 账号错误,密码正确
入参:账号cyy1,密码:123456
预期结果:{“code”:1,“msg”:“账号或密码不正确”}
实际结果:
用例4 账号为空
入参:账号,密码:123456
预期结果:{“code”:1,“msg”:“所有的参数不能为空”}
实际结果:
用例5 密码为空
入参:账号cyy,密码:
预期结果:{“code”:1,“msg”:“所有的参数不能为空”}
实际结果:
import unittest # 引入 unittest
from python01.python02.login import login_check # 导入login模块的登录函数
class TestLogin(unittest.TestCase): # 定义测试类,继承unittest.TestCase
def test_login_ok(self): # 用例1
# 第一步:准备用例数据
params = {
'username': "cyy", "password": 123456}
expected = {
"code":0,"msg":"登录成功"}
# 第二步:调用被测的功能函数(发送请求调用接口),获取实际结果
result = login_check(**params)
# 第三步:断言
self.assertEqual(result, expected)
def test_login_password_wrong(self): # 用例2
params = {
'username': "cyy", "password": "fdgg"}
expected = {
"code": 1, "msg": "账号或密码不正确"}
result = login_check(**params)
self.assertEqual(result, expected)
def test_login_user_wrong(self): # 用例3
params = {
'username': "cyy1", "password": 123456}
expected = {
"code": 1, "msg"