예제 #1
0
import pytest
import os
from time import sleep
from selenium import webdriver
from TestDatas.GobalDatas import gobal_datas as GD
from PageObjects.LoginPage.login_page import LoginPage
from Common.plugs.basepage import BasePage
from Common.plugs.get_log import Log
from Common.plugs.get_config import r_config

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
conf_dir = os.path.join(BASE_DIR,
                        'Common/config/config.ini').replace('/', '\\')
log_dir = r_config(conf_dir, "log", "log_path")
logger = Log(log_dir)

driver = None


@pytest.fixture(scope='class')
def setUpDownClass():
    logger.info("==========开始执行测试用例集===========")
    global driver
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get(GD.web_login_url)
    lg = LoginPage(driver)
    yield (driver, lg)
    logger.info("==========结束执行测试用例集===========")
    driver.quit()
예제 #2
0
import pytest
import os
from Common.plugs.get_config import r_config
from Common.plugs.http_requests import BaseRequest
from Common.plugs.get_excle import DoExcle, split_list
from Common.plugs.get_log import Log

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
conf_path = os.path.join(BASE_DIR,
                         'Common/conf/env_config.ini').replace('/', '\\')
log_path = r_config(conf_path, "log", "log_path")
test_case_path = r_config(conf_path, "test_case", "test_case_path")

DE = DoExcle(test_case_path, 'user')
caseList = split_list(DE.read_data())
logger = Log(log_path)


@pytest.mark.usefixtures('start_module')
class TestUser:
    @pytest.mark.p11
    @pytest.mark.parametrize('item', caseList[0])
    def test_P1_AddUser(self, start_module, item):
        logger.info("开始执行 ------- {0} 用例".format(item['description']))

        ret = BaseRequest(url=item['url'],
                          headers=start_module[0],
                          method=item['method'],
                          data=eval(item['parm'])).get_json()

        logger.info(" 请求发送后,开始进行 mysql 数据库检查")
예제 #3
0
# coding=utf-8

import os, time, logging

from Common.plugs.get_config import r_config

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
conf_path = os.path.join(BASE_DIR,
                         'Common/config/config.ini').replace('/', '\\')
log_path = r_config(conf_path, "log", "log_path")


class Log():
    def __init__(self, log_path):
        self.logname = os.path.join(
            log_path, '{0}.log'.format(time.strftime('%Y-%m-%d')))

    def __printconsole(self, level, message):
        # 创建一个logger
        logger = logging.getLogger()
        logger.setLevel(logging.DEBUG)
        # 创建一个handler,用于写入日志文件
        fh = logging.FileHandler(self.logname, 'a+', encoding='utf-8')
        fh.setLevel(logging.DEBUG)
        # 再创建一个handler,用于输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        # 定义handler的输出格式
        formatter = logging.Formatter(
            '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        fh.setFormatter(formatter)
예제 #4
0

import pymysql
import os
import sys
from Common.plugs.get_config import r_config
from Common.plugs.get_log import Log

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

if sys.platform == "win32":
    ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini').replace('/', '\\')
else:
    ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini')

log_path = r_config(ENV_CONF_DIR, "log", "log_path")
database_info = r_config(ENV_CONF_DIR, 'DB', 'database')

logger = Log(log_path)


class MysqlConnect:
    def __init__(self, host, port, user, password, database):
        try:
            logger.info("准备连接数据库")
            logger.info("连接信息:host:{0}, port:{1}, user:{2}, password:{3}, database:{4}".format(host, port, user, password,
                                                                                           database))
            self.db = pymysql.connect(host=host, user=user, password=password, port=port, database=database,
                                      charset='utf8')
            logger.info("连接数据库成功")
            self.cursor = self.db.cursor()
예제 #5
0
import pytest
import os
from Common.plugs.get_config import r_config
from Common.plugs.get_log import Log
from Common.plugs.get_db import MysqlConnect

BASE_DIR = os.path.dirname((os.path.dirname(__file__)))
conf_path = os.path.join(BASE_DIR, 'Common/conf/env_config.ini').replace('/', '\\')
log_path = r_config(conf_path, "log", "log_path")
database_info = r_config(conf_path, 'DB', 'database')

logger = Log(log_path)

mc = MysqlConnect(eval(database_info)['host'],
                  eval(database_info)['port'],
                  eval(database_info)['user'],
                  eval(database_info)['password'],
                  eval(database_info)['db'])

headers = {'User-Agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive',
           'Content-Length': '30'}


@pytest.fixture(scope='session')
def project_module_start():
    logger.info("==========开始 XX模块 执行测试===========")
    yield (headers, mc)
    mc.close_db()
    logger.info("==========结束 XX模块 测试===========")

예제 #6
0
import time, datetime, os, sys

from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from Common.plugs.get_log import Log
from Common.plugs.get_config import r_config

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

if sys.platform == "win32":
    conf_dir = os.path.join(BASE_DIR,
                            'Common/config/config.ini').replace('/', '\\')
else:
    conf_dir = os.path.join(BASE_DIR, 'Common/config/config.ini')
log_dir = r_config(conf_dir, "log", "log_path")
images_dir = r_config(conf_dir, "image", "img_path")

logger = Log(log_dir)


# 封装基本函数 - 执行日志、 异常处理、 截图
class BasePage:
    def __init__(self, driver):
        self.driver = driver

    # 截图
    def save_pictuer(self, doc):
        filePath = images_dir + '{0}_{1}.png'.format(
            doc, time.strftime('%Y-%m-%d_%H_%M_%S', time.localtime()))
        try:
예제 #7
0
import os, time, logging
from Common.plugs.get_config import r_config

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
ENV_CONF_DIR = os.path.join(BASE_DIR,
                            'Common/conf/env_config.ini').replace('/', '\\')
log_path = r_config(ENV_CONF_DIR, "log", "log_path")


class Log:
    def __init__(self, log_path):
        self.logName = os.path.join(
            log_path, '{0}.log'.format(time.strftime('%Y-%m-%d')))

    def console_log(self, level, message):
        # 创建一个logger
        logger = logging.getLogger()
        logger.setLevel(logging.DEBUG)

        # 创建一个handler,用于 debug 写入日志文件
        debug_file = logging.FileHandler(self.logName, 'a+', encoding='utf-8')
        debug_file.setLevel(logging.DEBUG)

        # 再创建一个handler,用于输出到控制台
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)

        # 定义handler的输出格式
        formatter = logging.Formatter(
            '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
예제 #8
0
import json
import os, sys
from openpyxl import load_workbook
from Common.plugs.get_config import r_config
from Common.plugs.get_log import Log

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

if sys.platform == "win32":
    ENV_CONF_DIR = os.path.join(BASE_DIR,
                                'Common/conf/env_config.ini').replace(
                                    '/', '\\')
else:
    ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini')

log_path = r_config(ENV_CONF_DIR, "log", "log_path")
test_case_path = r_config(ENV_CONF_DIR, 'test_case', 'test_case_path')

logger = Log(log_path)


class DoExcle:
    def __init__(self, filename, sheetname):
        self.filename = filename
        self.sheetname = sheetname

    def read_data(self):
        test_data = []
        try:
            logger.info("准备开始打开 {0} 文件".format(self.filename))
            wb = load_workbook(self.filename)