1.框架结构
框架结构目录
封装TPShop登录接口案例
登录测试用例
集成测试报告
参数化处理
db数据承载形式实现参数化
例
在login.py文件中
class LoginApi(object):
# 初始化
def __init__(self):
self.verify_code_url="xxx"
self.login_url="yyy"
# 登录过程:
# 1.获取验证码
#2.填写
def get_login_verify_code(self,session):
return session.get(self.verify_code_url)
def login(self,session,username,password,verify_code):
data={
"username":username,
"password":password,
"verify_code":verify_code
}
return session.post(url=self.login_url,data=data)
在Test_login.py文件中
import unittest
from api.login import LoginApi
from requests import Session
import json
from parameterized import parameterized
def build_data():
with open('./data/data.json','r',encoding='utf-8')as f:
content=f.read()
data=json.loads(content)
d=[]
for item in data:
d.append((item["username"],item["password"],item["verify_code"],item["status"],item["msg"],))
return d
class LoginTest(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.login_api=LoginApi()
def setUp(self) -> None:
self.session=Session()
def tearDown(self) -> None:
self.session.close()
@parameterized.expand(build_data)
def test_Login_success(self,username,password,verify_code,status,msg):
# 请求验证码
response=self.login_api.get_login_verify_code(self.session)
self.assertIn("image",response.headers.get("Content_Type"))
#验证码识别
# 调用登录方法,发送请求,获取响应数据
res=self.login_api.login(self.session,username,password,verify_code)
res=res.json()
# 断言
self.assertEqual(200,res.status_code)
self.assertEqual(status,res.get("status"))
self.assertEqual(msg,res.get("msg"))
在run_suite.py文件中
import unittest
from scripts import Test_login
from lib.HTMLTestRunner import HTMLTestRunner
suite=unittest.TestSuite()
suite.addTest(unittest.makeSuite(Test_login.LoginTest))
f=open('./report/report.html','wb')
runner=HTMLTestRunner(stream=f,title="567",description="123")
runner.run(suite)
在data.json文件中
[
{
"username": "12345678901",
"password": "123456",
"verify_code": "8888",
"status": 0,
"msg": "账号或密码错误"
},{
"username": "123456778",
"password": "123459",
"verify_code": "8887",
"status": 0,
"msg": "账号错误"
},{
"username": "12345675333",
"password": "123344",
"verify_code": "8888",
"status": 0,
"msg": "密码错误"
}
]
HTMLTestRunner.py文件上一篇中它的内容