运行测试
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()