一、编写的测试用例(依赖关系,第二个操作里面需要用到第一个操作里面的某些值)
方法一: 共用
import unittest
from testcase.class_02_02 import HttpRequest
#登录接口
class Login(unittest.TestCase):
def setUp(self):
#+self表示这个属性能被实例调用,可以在类函数里面调用
#登录
#放入生成cookie的步骤
self.login_url = '登录的url'
self.login_data = {
"""
参数
"""
}
self.recharge_url = '充值的url'
#获取登录后的cookies
self.cookies=HttpRequest().http_request(self.login_url,self.login_data,'get')
print("setUp函数里面登录后残剩的cookies是:{0}".format(self.cookies))
#针对于登录不需要cookie
#正常登录
def test_login_normal(self):
#data不能共用,用例就是通过data不同来进行的测试
data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.login_url, data, 'get')
try:
self.assertEqual('10001', res.json()['code'])
except Exception as e:
print("test_login_normal's error is {0}".format(e))
#打印出请求的结果
print(res.json())
#输入错误的密码
def test_login_wrong_pwd(self):
data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.login_url, data, 'get')
self.assertEqual('密码不能为空', res['msg'])
try:
self.assertEqual('20111', res.json()['code'])
except Exception as e:
print("test_login_wrong_pwd's error is {0}".format(e))
# 抛出异常
raise e
print(res.json())
#针对于充值需要传入cookie
#正常充值
def test_recharge_normal(self):
# recharge_url = '充值地址'
recharge_data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.recharge_url, recharge_data, 'post',self.cookies)
try:
self.assertEqual('10001', res.json()['code'])
except Exception as e:
raise Exception("test_recharge_normal's error is {0}".format(e))
print(res.json())
#充值为负数
def test_recharge_negative(self):
# recharge_url = '充值地址'
recharge_data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.recharge_url, recharge_data, 'post',self.cookies) # 少了cookie
try:
self.assertEqual('20117', res.json()['code'])
except Exception as e:
print("test_recharge_negative's error is {0}".format(e))
raise e
print(res.json())
def tearDown(self):
print("我已经执行完毕测试用例了")
方法二:全局变量cookie(缺点:关联性比较强,一步错,步步错)
import unittest
from testcase.class_02_02 import HttpRequest
# 全局变量 局部变量
COOKIE = None
# 登录接口
class Login(unittest.TestCase):
def setUp(self):
self.login_url = '登录的url'
self.recharge_url = '充值的url'
def test_login_normal(self):
# 声明全局变量
global COOKIE
data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.login_url, data, 'get')
if res.cookies: # 如果cookie有的话 就更新COOKIE
COOKIE = res.cookies
try:
self.assertEqual('10001', res.json()['code'])
except Exception as e:
print("test_login_normal's error is {0}".format(e))
# 打印出请求的结果
print(res.json())
def test_login_wrong_pwd(self):
data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.login_url, data, 'get')
self.assertEqual('密码不能为空', res['msg'])
try:
self.assertEqual('20111', res.json()['code'])
except Exception as e:
print("test_login_wrong_pwd's error is {0}".format(e))
# 抛出异常
raise e
print(res.json())
# 针对于充值需要传入cookie
# 正常充值
def test_recharge_normal(self):
global COOKIE
recharge_data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.recharge_url, recharge_data, 'post', COOKIE)
try:
self.assertEqual('10001', res.json()['code'])
except Exception as e:
raise Exception("test_recharge_normal's error is {0}".format(e))
print(res.json())
# 充值为负数
def test_recharge_negative(self):
# recharge_url = '充值地址'
recharge_data = {
"""
参数
"""
}
res = HttpRequest().http_request(self.recharge_url, recharge_data, 'post', COOKIE)
try:
self.assertEqual('20117', res.json()['code'])
except Exception as e:
print("test_recharge_negative's error is {0}".format(e))
raise e
print(res.json())
def tearDown(self):
print("我已经执行完毕测试用例了")
三、输出的测试报告
# ..成功 F失败 1代码错误
import unittest
import HTMLTestRunner
from testcase import class_02_01 #导入模块名
import time
import os
suite = unittest.TestSuite() # 存储用例
loader = unittest.TestLoader() # 创建一个加载器
suite.addTest(loader.loadTestsFromModule(class_02_01))
# 新鲜 html
if __name__ == "__main__":
time1 = time.strftime("%Y-%m-%d %H-%M-%S")
name1 = time1 + "report.html"
with open(name1, 'wb') as file:
runner = HTMLTestRunner.HTMLTestRunner(
stream=file,
title="单元测试报告",
description="测试用例执行统计1",
verbosity=2
)
runner.run(suite)