框架健壮性优化,环境变量类,正则替换excel
项目健壮性提高 path参数化
import os # 获取项目所在的绝对路径 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 用例模块所在的目录路径 CASE_DIR = os.path.join(BASE_DIR, "testcases") # 用例数据所在的目录路径 DATA_DIR = os.path.join(BASE_DIR, "data") # 配置文件所在的目录路径 CONF_DIR = os.path.join(BASE_DIR, "conf") # 测试报告所在的目录路径 REPORT_DIR = os.path.join(BASE_DIR, "reports") # 日志文件所在的目录路径 LOG_DIR = os.path.join(BASE_DIR, "logs")
引入正则方便对excel中的数据灵活替换完善参数化效果
import re from common.handle_config import conf class EnvData: """定义一个类,用来保存用例执行过程中,提取出来的数据(当成环境变量的容器)""" pass def replace_data(data): """替换数据""" while re.search("#(.*?)#", data): res = re.search("#(.*?)#", data) # 返回的式一个匹配对象 # 获取匹配到的数据 key = res.group() # 获取匹配规则中括号里面的内容 item = res.group(1) try: # 获取配置文件中对应的值 value = conf.get("test_data", item) except: # 去EnvData这个类里面获取对应的属性(环境变量) value = getattr(EnvData, item) data = data.replace(key, value) return data
环境变量类的实际应用
实例代码
@ddt class TestAdd(unittest.TestCase): excel = HandleExcel(os.path.join(DATA_DIR, "apicases.xlsx"), "add") cases = excel.read_data() db = HandleMysql() @classmethod def setUpClass(cls): """用例执行的前置条件:登录""" # 准备登录的相关数据 url = conf.get("env", "url") + "/member/login" data = { "mobile_phone": conf.get("test_data", "phone"), "pwd": conf.get("test_data", "pwd") } headers = eval(conf.get("env", "headers")) response = request(method="post", url=url, json=data, headers=headers) res = response.json() member_id = str(jsonpath.jsonpath(res, "$..id")[0]) token = "Bearer" + " " + jsonpath.jsonpath(res, "$..token")[0] # 将提取出来的数据保存为EnvData这个类的属性(环境变量) setattr(EnvData, "member_id", member_id) setattr(EnvData, "token", token)
相关推荐
昭君出塞 2020-11-23
libao 2020-09-16
zjc 2020-09-03
84226432 2020-08-19
xiaoyuerp 2020-08-17
blankt 2020-08-15
82387067 2020-08-15
Cherishyuu 2020-07-28
赵家小少爷 2020-07-18
amei0 2020-06-26
higheels 2020-06-26
CheNorton 2020-06-25
Jieen 2020-06-18
MAC2007 2020-06-16
风雨断肠人 2020-06-14
liangston 2020-06-14
firefaith 2020-06-14
5.环境变量配置在linux系统下,需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里面方法一:将文件移动到属于环境变量目录中sudo mv chromedriver /user/bin
letheashura 2020-06-14
pandaphinex 2020-06-11