1
testcases 包中文件 的完整代码
import pytest
import os
import allure
from import user
from _operate import db
from _data import data
from import logger
BASE_PATH = (((__file__)))
def get_data(yaml_file_name):
try:
data_file_path = (BASE_PATH, "data", yaml_file_name)
yaml_data = _yaml(data_file_path)
except Exception as ex:
(str(ex))
else:
return yaml_data
base_data = get_data("")
api_data = get_data("")
scenario_data = get_data("")
@("前置步骤 ==>> 清理数据")
def step_first():
("******************************")
("前置步骤开始 ==>> 清理数据")
@("后置步骤 ==>> 清理数据")
def step_last():
("后置步骤开始 ==>> 清理数据")
@("前置步骤 ==>> 管理员用户登录")
def step_login(username, password):
("前置步骤 ==>> 管理员 {} 登录,返回信息为{}".format(username,
password))
@(scope="session")
def login_fixture():
username = base_data["init_admin_user"]["username"]
软件测试任务驱动教程
2
password = base_data["init_admin_user"]["password"]
header = {
"Content-Type": "application/x-www-form-urlencoded"
}
payload = {
"username": username,
"password": password
}
loginInfo = (data=payload, headers=header)
step_login(username, password)
yield ()
@(scope="function")
def insert_delete_user():
"""删除用户前,先在数据库插入一条用户数据"""
insert_sql = base_data["init_sql"]["insert_delete_user"][0]
_db(insert_sql)
step_first()
("删除用户操作:插入新用户--准备用于删除用户")
("执行前置 SQL:{}".format(insert_sql))
yield
# 因为有些情况是不给删除管理员用户的,这种情况需要手动清理上面插入的数
据
del_sql = base_data["init_sql"]["insert_delete_user"][1]
_db(del_sql)
step_last()
("删除用户操作:手工清理处理失败的数据")
("执行后置 SQL:{}".format(del_sql))
@(scope="function")
def delete_register_user():
"""注册用户前,先删除数据,用例执行之后,再次删除以清理数据"""
del_sql = base_data["init_sql"]["delete_register_user"]
_db(del_sql)
step_first()
("注册用户操作:清理用户--准备注册新用户")
("执行前置 SQL:{}".format(del_sql))
yield
_db(del_sql)
step_last()
("注册用户操作:删除注册的用户")
("执行后置 SQL:{}".format(del_sql))
@(scope="function")
3
def update_user_telephone():
"""修改用户前,因为手机号唯一,为了使用例重复执行,每次需要先修改手机
号,再执行用例"""
update_sql = base_data["init_sql"]["update_user_telephone"]
_db(update_sql)
step_first()
("修改用户操作:手工修改用户的手机号,以便用例重复执行")
("执行 SQL:{}".format(update_sql))