测试登录:unittest,BeautifulReport

import unittest,requests
import ddt
from BeautifulReport import BeautifulReport as bf
from urllib import parse
@ddt.ddt
class Login(unittest.TestCase):
base_url = 'http://118.24.3.40/'
@ddt.file_data('login.yaml')#ddt帮你读文件,获取文件内容,循环调用函数
def test_request(self,**kwargs):
detail = kwargs.get('detail','没写用例描述')
self._testMethodDoc = detail #动态的用例描述
url = kwargs.get('url')#url
url = parse.urljoin(self.base_url,url)#拼接好url
method = kwargs.get('method','get')#请求方式
data = kwargs.get('data',{}) #请求参数
header = kwargs.get('header',{})#请求头
cookie = kwargs.get('cookie',{})#cookie
check = kwargs.get('check')
method = method.lower() #便于处理
try:
if method=='get':
res = requests.get(url,params=data,cookies=cookie,headers=header).text
#因为接口有异常的情况下, 可能返回的不是json串,会报错
else:
res = requests.post(url,data=data,cookies=cookie,headers=header).text
except Exception as e:
print('接口请求出错')
res = e
for c in check:
self.assertIn(c,res,msg='预计结果不符,预期结果【%s】,实际结果【%s】'%(c,res))

sutie = unittest.TestSuite()
sutie.addTest(unittest.makeSuite(Login))
run = bf(sutie)
run.report('login_test','登录测试用例')
print(run.success_count) #通过的次数
print(run.failure_count) #失败的次数
# 1、运行的用例条数是不是和你的用例数一样
# 2、看看有没有其他不对的地方

如果报告报gbk编码错误,需要更改源码中encode

猜你喜欢

转载自www.cnblogs.com/irisx/p/9141064.html