开始步骤:
1.准备好一个登陆的测试用例,login为开发写的登陆代码,testcase为书写的测试用例 2.创建一个测试用例启动文件run_text,准备好HTMLTestrunner并生成测试报告report
(1)开发的接口代码(一般可以从接口文档中获取接口进行用例设计)
login.py
"""
开发写好的代码
"""
def login_check(username=None, password=None):
"""
登录校验的函数
:param username: 账号
:param password: 密码
:return: dict type
"""
if all([username, password]):
if username == 'python24' and password == 'lemonban':
return {"code": 0, "msg": "登录成功"}
else:
return {"code": 1, "msg": "账号或密码不正确"}
else:
return {"code": 1, "mgs": "所有的参数不能为空"}
#怎样进行用例的测试方案?(这一块是自己用来测试的)
if __name__ == '__main__':
expected = {"code": 0, "msg": "登录成功"}
result = login_check(username = 'python24',password = 'lemonban')
if expected == result:
print("用例执行通过")
else:
print("用例执行不通过")
(2)开始编写用例,这里编写了一个登陆成功的接口用例
testcase.py
'''
作者:seak
时间:
项目:
题目:
作用:
备注:
1.编写登录成功的测试用
'''
import unittest
#测试用例类:自己定义的类只要继承于unittest中的TestCase,那么这个类就是一个测试用例类
#定义一个测试用例类,并写好前置条件
from step.py_api_01.login import login_check
class LoginTestCase(unittest.TestCase):
#编写测试用例
#测试用例:测试用例类中,以test开头的方法就是一条测试用例
#用例执行通没通过的评判标准:断言异常
#用例3步骤:
#(1)准备用例数据,准备预期结果
#(2)获取实际结果
#(3)断言
def test_login_pass(self):
#(1)准备用例数据,准备预期结果
data = ("python24", "lemonban")
expected = {"code": 0, "msg": "登录成功"}
#(2)获取实际结果
result = login_check(*data)
#(3)进行断言
self.assertEqual(expected,result)
# # 如果直接运行这个文件,就使用unittest中的main函数来执行测试用例
# if __name__ == '__main__':
# unittest.main()
(3)创建一个测试用例启动文件run_text,准备好HTMLTestrunner,report会自动生成
run_test.py
'''
执行启动的测试文件
'''
import unittest
import testcases
import step.py_api_01.HTMLTestRunnerNew
# 第一步,创建一个测试套件
suite = unittest.TestSuite()
# 第二步:将测试用例,加载到测试套件中
# 第1种,通过模块去加载用例
# 创建一个加载对象
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromModule(testcases))
# 第三步:创建一个测试运行程序启动器
runner = step.py_api_01.HTMLTestRunnerNew.HTMLTestRunner(stream=open("report.html", "wb"), # 打开一个报告文件,将句柄传给stream
tester="seak,小海", # 报告种显示的测试人员
description="第一份测试报告", # 报告种显示描述信息
title="测试报告") # 报告的标题
# 第四步:使用启动器去执行测试套机
runner.run(suite)
'''
补充:
# 第二步:将测试用例,加载到测试套件中
# 第1种,通过模块去加载用例
# 创建一个加载对象
import testcases
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromModule(testcases))
# 第2种:通过测试用例类去加载
# import testcases
# loader = unittest.TestLoader()
# suite.addTest(loader.loadTestsFromTestCase(testcases.LoginTestCase))
# 第3种 :添加单条测试用例
# from testcases import LoginTestCase
# 创建一个用例对象
# 注意点:通过用例类去创建测试用例对象的时候,需要传入用例的方法名(字符串类型)
# case = LoginTestCase("test_login_pass")
# suite.addTest(case)
# 第4种,指定测试用例的所在的目录路径,进行加载()
# loader = unittest.TestLoader()
# suite.addTest(loader.discover(r"用例文件所在的目录的绝对路径"))
'''
运行run_test测试:
这里看着不方便可以去生成的report上面看