pytest_ui_api_fw/conftest.py

140 lines
4.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 设置utf-8 显示中文
"""
@Create Time: 20年 11-14 21:27
@Author: guo
@Fileconftest.py
"""
import json
from string import Template
import pytest
import requests
import sys
from common.util.get_file_path import GetFilePath
from common.util.handle_jsonfile import HandleJsonFile
from common.yml.get_yml_keys import GetYmlKeys
sys.path.append("../")
from common.cookie.get_web_cookie import GetWebCookie
from common.cookie.get_app_cookie_header import GetAppCookieHeader
from common.util.generate_device_key import GenerateDeviceKey
from config.get_conf_data import GetConfData
get_conf_data = GetConfData()
ymlkeys = GetYmlKeys()
fpath = GetFilePath()
hjson = HandleJsonFile()
web_login_data: dict = get_conf_data.get_web_login_request_data()
app_login_data: dict = get_conf_data.get_app_login_request_data()
logindata_key = ymlkeys.get_login_data_key()
res_filepath_key = ymlkeys.get_response_filepath_key()
token_key = ymlkeys.get_token_filepath_key()
@pytest.fixture(scope="class")
def web_login(request):
login_data = request.param[logindata_key]
res_filepath = request.param[res_filepath_key]
token_path = request.param[token_key]
global web_login_data
web_login_data = __replace(web_login_data,login_data)
res = requests.request(**web_login_data)
get_cookies = GetWebCookie(res)
# 当response_filepath 不为None时,则保存当前的登录响应结果
if res_filepath != None:
res_filepath = fpath.get_file_abspath_json(res_filepath)
hjson.write_dict_to_json_file(res_filepath, res.json())
# 当token_filepath 不为None时,则保存当前的cookie
if token_path != None:
token_path = fpath.get_file_abspath_json(token_path)
token = get_cookies.get_cookie()
hjson.write_dict_to_json_file(token_path, token)
# return get_cookies
@pytest.fixture(scope="class")
def app_login(request):
login_data = request.param[logindata_key]
res_filepath = request.param[res_filepath_key]
token_path = request.param[token_key]
loginid = login_data['loginId']
global app_login_data
app_login_data = __replace(app_login_data,login_data)
app_login_data['device'] = GenerateDeviceKey().generate_key_by_account(loginid)
res = requests.request(**app_login_data)
get_header = GetAppCookieHeader(res)
# 当response_filepath 不为None时,则保存当前的登录响应结果
if res_filepath != None:
res_filepath = fpath.get_file_abspath_json(res_filepath)
hjson.write_dict_to_json_file(res_filepath, res.json())
# 当token_filepath 不为None时,则保存当前的cookie
if token_path != None:
token_path = fpath.get_file_abspath_json(token_path)
token = get_header.get_header()
hjson.write_dict_to_json_file(token_path, token)
# return get_header
@pytest.fixture(scope="class")
def get_web_login_response(request):
login_data = request.param[logindata_key]
res_filepath = request.param[res_filepath_key]
token_path = request.param[token_key]
global web_login_data
web_login_data=__replace(web_login_data,login_data)
res = requests.request(**web_login_data)
# 当response_filepath 不为None时,则保存当前的登录响应结果
if res_filepath != None:
res_filepath = fpath.get_file_abspath_json(res_filepath)
hjson.write_dict_to_json_file(res_filepath, res.json())
# 当token_filepath 不为None时,则保存当前的cookie
if token_path != None:
token_path = fpath.get_file_abspath_json(token_path)
get_cookies = GetWebCookie(res)
token = get_cookies.get_cookie()
hjson.write_dict_to_json_file(token_path, token)
# return res
@pytest.fixture(scope="class")
def get_app_login_response(request):
login_data = request.param[logindata_key]
res_filepath = request.param[res_filepath_key]
token_path = request.param[token_key]
loginid = login_data['loginId']
global app_login_data
app_login_data = __replace(app_login_data,login_data)
app_login_data['data']['device'] = GenerateDeviceKey().generate_key_by_account(loginid)
res = requests.request(**app_login_data)
# 当response_filepath 不为None时,则保存当前的登录响应结果
if res_filepath != None:
res_filepath = fpath.get_file_abspath_json(res_filepath)
hjson.write_dict_to_json_file(res_filepath, res.json())
# 当token_filepath 不为None时,则保存当前的cookie
if token_path != None:
token_path = fpath.get_file_abspath_json(token_path)
get_header = GetAppCookieHeader(res)
token = get_header.get_header()
hjson.write_dict_to_json_file(token_path, token)
# return res
def __replace(templace,login_data:dict):
tem = Template(json.dumps(templace))
res = json.loads(tem.substitute(**login_data))
return res