接口測試過程中,可能會切換測試環境,通過配置相關信息修改
設計思路:
1、 準備各個環境配置文件信息,包括http、common 、redis、db
2、創建不同環境配置信息
測試環境:env_test.yml、 預生產環境:env_prepro.yml、生產環境:env_pro.yml
3、執行run.py 通過命令行執行:注意目錄 Python run.py
(備注:需要先注釋掉os.system(‘allure generate ./report/data -o ./report/html --clean’))
4、環境參數讀取后,將對應的配置信息寫入到文件http、common 、redis、db中
使用Python 外部獲取參數方法來執行
import os
import sysimport pytestfrom common.file_load import load_yaml_file, write_yamlif __name__ == '__main__':args = sys.argv # 返回類型 列表print(args)#通過命令行執行 python run.py test# 返回['run.py', 'test'] 返回列表第一個元素文件名稱,第二個元素文件參數# 默認指向測試環境env_file_path = r'/config/env_test.yml'# 傳遞測試環境名稱if len(args)>1:env_name = args[1]# 路徑拼接env_file_path = f'/config/env_{env_name}.yml'# 刪除傳進來的環境名稱參數 可能會被當成pytest執行測試用例名稱del args[1]# 讀取配置文件信息env_info = load_yaml_file(env_file_path)print(env_info)# 寫入默認配置文件中 分別common db http rediswrite_yaml(r'/config/common.yml',env_info['common'])write_yaml(r'/config/db.yml', env_info['db'])write_yaml(r'/config/http.yml', env_info['http'])write_yaml(r'/config/redis.yml', env_info['redis'])pytest.main()# # 使用python執行生成測試報告的命令os.system('allure generate ./report/data -o ./report/html --clean')
比如想執行當前測試環境文件
命令行執行:python run.py test/pro/prepro