Ejemplo n.º 1
0
class OperaCookie():
    '''
    操作cookie,主要为以下三方面的内容:  \n
    1:将cookie值保存到json文件中  \n
    2:从保存的cookie 的json文件中读取cookie数据  \n
    3:将cookie值转化为dict 字典  \n
    '''


    def __init__(self):
        '''
        进行实例化时,会进行如下操作:  \n
        1:获取保存cookie数据的目录  \n
        2:实例化获取文件path对象  \n
        3:实例化操作json文件对象  \n
        '''
        self.cookie_dir = GetEachDirPath().get_data_cookie_dir()
        self.file_path = GetFilePath()
        self.opera_file = OperaJsonFile()

    def save_cookie_to_file(self, case_id, response):
        '''
        获取请求的响应结果中的cookie,并将值保存到json文件中,以便其他用例需要   \n
        :param case_id: 保存cookie的json文件名称,与case id同名
        :param response: 请求的响应结果,该结果中有存放了cookie,使用response.cookies 获取
        :return: None
        '''
        cookie_name = case_id
        # 拼接cookie的路径(含文件名称)
        cookie_path = self.file_path.get_file_path_json(self.cookie_dir, cookie_name)
        # 将cookie转化为dict
        cookie_dict = self.cookie_to_dict(response.cookies)
        # println(case_id,cookie_dict,cookie_path)
        # 将cookie写入到json文件中
        self.opera_file.write_dict_to_json_file(cookie_path,cookie_dict)

    def get_cookie_from_json_file(self,case_id):
        '''
        从json文件中读取保存过的所依赖的cookie  \n
        :param case_id: 原则上cookie 的json文件的名称与case id保持一致
        :return: 获取到的cookie值,类型为dict
        '''
        cookie_name = case_id
        # 拼接文件路径
        cookie_path = self.file_path.get_file_path_json(self.cookie_dir,cookie_name)
        # 获取数据
        cookie_dict = self.opera_file.read_json_file_to_dict(cookie_path)
        return cookie_dict

    def cookie_to_dict(self,cookie):
        '''
        将获取到的cookie值转化为dict  \n
        :param cookie: cookie值
        :return: 转化为dict后的cookie值
        '''
        return requests.utils.dict_from_cookiejar(cookie)
Ejemplo n.º 2
0
 def __init__(self):
     '''
     进行实例化时,会进行如下操作:  \n
     1:获取保存cookie数据的目录  \n
     2:实例化获取文件path对象  \n
     3:实例化操作json文件对象  \n
     '''
     self.cookie_dir = GetEachDirPath().get_data_cookie_dir()
     self.file_path = GetFilePath()
     self.opera_file = OperaJsonFile()
Ejemplo n.º 3
0
 def __init__(self):
     ''''''
     file_name = self.__file_name
     file_dir = GetEachDirPath().get_config_dir()
     self.config_file_path = GetFilePath().get_file_path_ini(file_dir, file_name)
     self.config = configparser.ConfigParser()
     self.config.read(self.config_file_path, 'utf-8')
Ejemplo n.º 4
0
    def read_json_file(self, filename):
        '''
        读取json文件,并将数据转化为dict,针对文件句柄,是直接从文件中读取  \n
        :param filename: 文件名
        :return: 转化后的dict
        '''
        dir_path = GetEachDirPath()
        file_path = GetFilePath()
        # 获取依赖的数据所在的目录
        data_dir = dir_path.get_data_request_dir()
        # 拼接数据目标文件路径(启文件名称)
        json_file = file_path.get_file_path_json(data_dir, filename)
        # 获取json文件数据
        with open(json_file, 'r', encoding='utf-8') as fp:
            return json.load(fp)


# help(OperaJsonFile)
Ejemplo n.º 5
0
    def get_json_file_path(self):
        '''
        获取request 请求对应的json文件路径(启文件名称)  \n
        :return: 获取request 请求对应的json文件路径(启文件名称)
        '''
        sheetname = GetConfigFileData().get_excel_sheet_name()
        json_dir = GetEachDirPath().get_data_request_dir()
        json_path = GetFilePath().get_file_path_json(json_dir, sheetname)
        return json_path


# help(GetReqData)
Ejemplo n.º 6
0
    def save_browser_img(self, driver, img_name):
        """
        保存图片,需要传入驱动、图片路径、图片名称  \n
        :param driver: 驱动
        :param img_name: 图片名称
        :return: None
        """
        driver = driver
        img_name = img_name if img_name.endswith('.png') else img_name + '.png'
        img_path = GetFilePath().get_file_path_png(img_dir, img_name)

        try:
            # driver.get_screenshot_as_file('{}/{}'.format(img_dir, img_name))
            driver.get_screenshot_as_file(img_path)
        except Exception as msg:
            print(msg)
            pass
Ejemplo n.º 7
0
from common.cookie.opera_cookie import OperaCookie
# from common.excel.get_match_data import GetMatchData
from common.util.response_json_to_str import ResJsonToStr
from common.util.run_case import RunCase

'''
需要注意的是:
1:这里在获取excel的数据时,是需要传入excel的路径的。
2:该路径可以是绝对路径,也可以相对路径。
3:如果是相对路径,必须是调用/执行 该case(test_login.py)文件(runall.py)的相对路径,而不是相对于 test_login.py文件的相对路径
4:建议传入绝对路径,即获取当前 test_login.py的路径,然后再进行拼接。
'''

config_data = GetConfigFileData()
dir_path = GetEachDirPath()
file_path = GetFilePath()
# 想要读取的excel表的名称
excel_name = config_data.get_excel_name()
# sheet表的名称
sheet_name = config_data.get_excel_sheet_name()
# 获取excel所在的目录
excel_dir = dir_path.get_case_data_dir()
# 获取excel的路径(含名称)
excel_path = file_path.get_file_path_xlsx(excel_dir, excel_name)

excel_data = ReadExcelData(excel_path, sheet_name)
excel_list = excel_data.get_sheet_data_list()
excel_dict = excel_data.get_sheet_data_dict()

json_file_dir = dir_path.get_data_request_dir()
json_file_name = sheet_name
Ejemplo n.º 8
0
# from BeautifulReport import BeautifulReport
import unittest
import sys
import os

sys.path.append('../')
from common.util.get_each_dir_abspath import GetEachDirPath
from common.mail.send_mail import SendMail
from common.util.get_file_path import GetFilePath
from common.util.get_time import GetTime
from common.report.BeautifulReport_Single import BeautifulReport
from common.config.read_config_data import GetConfigFileData

# 获取相应的路径,文件名称规则。
dir = GetEachDirPath()
file_path = GetFilePath()
config = GetConfigFileData()

case_dir = dir.get_case_dir()
excel_dir = dir.get_case_data_dir()
report_dir = dir.get_report_dir()
img_dir = dir.get_img_dir()
req_json_dir = dir.get_data_request_dir()
config_dir = dir.get_config_dir()

# 从配置文件里获取相关的配置信息
case_name_rule = config.get_case_name_rule()
report_name = config.get_report_html_name()
report_title = config.get_report_title()

# ****************拼接报告名称(含路径)*************************
Ejemplo n.º 9
0
cur_time = GetTime().get_cur_time()

config = GetConfigFileData()
# 获取要运行的浏览器
browser = config.get_driver_browser()
# 获取驱动 exe
chrome_driver_exe = config.get_driver_chrome_exe_name()
firefox_driver_exe = config.get_driver_firefox_exe_name()
ie_driver_exe = config.get_driver_ie_exe_name()

# 获取driver相关的目录,及日志输出目录
driver_log_dir = GetEachDirPath().get_driver_log_dir()
driver_dir = GetEachDirPath().get_driver_dir()

# 设置浏览器驱动exe的路径
chrome_exe_path = GetFilePath().get_file_path_exe(driver_dir, chrome_driver_exe)
firefox_exe_path = GetFilePath().get_file_path_exe(driver_dir, firefox_driver_exe)
ie_exe_path = GetFilePath().get_file_path_exe(driver_dir, ie_driver_exe)

# 设置各浏览器驱动输出的log名称
chrome_log_name = 'chrome_log' + cur_time
firefox_log_name = 'firefox_log' + cur_time
ie_log_name = 'ie_log' + cur_time


# 设置各浏览器的log路径
chrome_log_path = GetFilePath().get_file_path_log(driver_log_dir, chrome_log_name)
firefox_log_path = GetFilePath().get_file_path_log(driver_log_dir, firefox_log_name)
ie_log_path = GetFilePath().get_file_path_log(driver_log_dir, ie_log_name)