1、框架结构
我在该项目采用的是关键字驱动测试的框架类型。首先创建如下几个目录common(公共模块)、config(公共配置)、logs(运行日志)、reports(测试报告)、resources(测试资源)、testcases(测试用例)、utils(工具脚本)。在接下来的环节我将详细介绍这几个模块的实现。
2、公共配置config
config文件夹下放有config.ini和conf.py。config.ini用来管理多套测试环境(dev、sit、uat),config.py用来管理项目目录的存取。
# config.ini
[WEB_SIT]
sit = icare
type = uat
sms_url = http://xx.sangfor.com
url = http://xx.sangfor.com
username = user
password = pass
db = sf-icare
db_host = 1.1.1.1
db_port = 3306
db_user = xx
db_pass = xx
[ICARE_DEV]
sit = icare
type = dev
sms_url = http://xx.sangfor.com
url = http://xx.sangfor.com
username = xx
password = xx
db = sf-icare
db_host = 2.2.2.2
db_port = 3306
db_user = xx
db_pass = xx
[ICARE_SIT]
sit = icare
type = sit
sms_url = http://xx.sangfor.com
url = http://xx.sangfor.com
username = xx
password = xx
db = sf-icare
db_host = 3.3.3.3
db_port = 3306
db_user = xx
db_pass = xx
[ICARE_UAT]
sit = icare
type = uat
sms_url = http://xx.sangfor.com
url = http://xx.sangfor.com
username = xx
password = xx
db = sf-icare
db_host = 4.4.4.4
db_port = 3306
db_user = xx
db_pass = xx
[PRM_SIT]
sit = prm
type = sit
url = https://xx.sangfor.com
username = xx
password = xx
[TOKEN]
token = /api/api-auth/oauth/user/token
[HEADERS]
user_agent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
authorization = Bearer 4521eb70-8fb2-4747-a512-1d2aed596849
[ICARE_USER]
super_user = 13300,99896,94406,98923,43913,21401
#conf.py
import os
import uuid
from utils.times import dt_strftime
class ConfigManager(object):
# 项目目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@property
def log_file(self):
"""日志目录"""
log_dir = os.path.join(self.BASE_DIR, 'logs', dt_strftime())
if not os.path.exists(log_dir):
os.maked