Example #1
0
 def update_deposit_request_status(self, record):
     try:
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         timeStamp = int(round(time.time() * TIME_MULTIPLE))
         thirdSQL = "update dgv_deposit_request set deposit_status = '%s', update_time = '%s' " \
                    "where eos_trx_id = '%s'" % (record['status'], timeStamp, record['eos_trx_id'])
         cursor.execute(thirdSQL)
     except Exception as err:
         Logger.error(
             'update_deposit_request_status failed. error:{}, record:{}'.
             format(err, record))
Example #2
0
 def update_account_balance(self, record):
     try:
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         timeStamp = int(round(time.time() * TIME_MULTIPLE))
         thirdSQL = "update dgv_user_account set amount_available = amount_available+'%s', update_time = '%s' " \
                    "where user_id = '%s' and asset_code= '%s'" % (record['amount'], timeStamp, record['user_id'], record['asset_code'])
         cursor.execute(thirdSQL)
     except Exception as err:
         Logger.error(
             'update_deposit_request_status failed. error:{}, record:{}'.
             format(err, record))
Example #3
0
 def exist_deposit_request(self, tx_id):
     select_rows = None
     select_sql = "SELECT id FROM dgv_deposit_request where eos_trx_id='%s' " % tx_id
     try:
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         cursor.execute(select_sql)
         select_rows = cursor.fetchone()
         cursor.close()
     except Exception as err:
         Logger.error('exist_deposit_request failed. {}'.format(err))
     return select_rows
Example #4
0
 def exist_liked_account(self, account_name):
     select_rows = None
     select_sql = "SELECT mobile FROM dgv_user where user_code_invite='%s' " % account_name
     try:
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         cursor.execute(select_sql)
         select_rows = cursor.fetchone()
         cursor.close()
     except Exception as err:
         Logger.error('exist_liked_account failed. {}'.format(err))
     return select_rows
Example #5
0
def get_office_account_count():
    count = 0
    try:
        res_obj = requests.post(THIRD_PARTY_API, data=json.dumps(THIRD_PARTY_PAYLOAD), headers=THIRD_PARTY_HEADERS)
        res = json.loads(res_obj.text)
        if hasattr(res, 'error'):
            Logger.error("Call third api fial. error: {}".format(res['error']))
        else:
            count = res['total']
    except Exception as e:
        Logger.error("Get office account trx count fails. error: {}".format(e))
    finally:
        return count
Example #6
0
 def select_deposit_requests(self, start, offset):
     record = {}
     try:
         sql = "SELECT * FROM dgv_deposit_request WHERE deposit_status ='INIT' " \
               "order by `id` limit %s,%s" % (start, offset)
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         if cursor.execute(sql) > 0:
             record = cursor.fetchall()
         cursor.close()
     except Exception as e:
         Logger.error('Query deposit request failed. {}'.format(e))
     return record
Example #7
0
 def get_user_id_by_mobile(self, mobile):
     try:
         firstSQL = "SELECT user_id FROM dgv_user WHERE " \
                    "user_code_invite='%s' " % mobile
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         record = None
         if cursor.execute(firstSQL) > 0:
             record = cursor.fetchone()
         cursor.close()
         return record
     except Exception as e:
         Logger.error('select_deposit_record failed. err:{}'.format(e))
def open_browser(browser_type):
    try:
        if browser_type == 'Chrome':
            Logger().get_logger().info('Chrome浏览器启动中......')
            driver = webdriver.Chrome(options=Options().conf_option())

        else:
            Logger().get_logger().info('{0}浏览器启动中......'.format(browser_type))
            driver = getattr(webdriver, browser_type)()

    except Exception as e:
        Logger().get_logger().info('出现异常,启动Chrome浏览器,Exception信息:{0}'.format(e))
        driver = webdriver.Chrome()
    return driver
Example #9
0
 def get_symbol_from_wasset(self, contract_account, asset_code, chain):
     record = None
     try:
         firstSQL = "SELECT symbol FROM wallet_asset WHERE " \
                    "display_symbol='%s' and contract_address='%s' and chain_id='%s' " % (
                    asset_code, contract_account, chain)
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         if cursor.execute(firstSQL) > 0:
             record = cursor.fetchone()
         cursor.close()
         return record
     except Exception as e:
         Logger.error('select_deposit_record failed. err:{}'.format(e))
Example #10
0
 def select_deposit_record(self, tx_id):
     record = None
     try:
         firstSQL = "SELECT * FROM dgv_deposit_record WHERE " \
                    "out_trx_id='%s' " % tx_id
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         if cursor.execute(firstSQL) > 0:
             record = cursor.fetchone()
         cursor.close()
         return record
     except Exception as e:
         Logger.error(
             'select_deposit_record failed. tx_id:{}, err:{}'.format(
                 tx_id, e))
Example #11
0
    def insert_account_record(self, record):
        try:
            cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)

            secondSQL = "INSERT INTO dgv_account_record(from_user_id, to_user_id, \
                                    amount,asset_code, operation_type, deposit_withdraw_id,remark, create_time, update_time) " \
                        "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')" % (
                            record['from_user_id'], record['to_user_id'],
                            record['amount'],
                            record['asset_code'], record['operation_type'], record['deposit_withdraw_id'],
                            record['remark'],record['create_time'],record['update_time'])
            cursor.execute(secondSQL)
        except Exception as err:
            Logger.error(
                'insert_account_record failed. error:{}, record:{}'.format(
                    err, record))
Example #12
0
    def insert_deposit_record(self, record):
        try:
            cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)

            secondSQL = "INSERT INTO dgv_deposit_record(out_trx_id, from_account, \
                                    user_id, amount,asset_code, create_time, update_time) " \
                        "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')" % (
                            record['out_trx_id'], record['eos_from_account'],
                            record['like_d_account'],
                            record['amount'], record['asset_code'], record['create_time'],
                            record['update_time'])
            cursor.execute(secondSQL)
        except Exception as err:
            Logger.error(
                'insert_deposit_record failed. error:{}, record:{}'.format(
                    err, record))
Example #13
0
    def get_asset_code_from_basset(self, record):
        res = self.get_symbol_from_wasset(record['contract_address'],
                                          record['asset_code'], chain_id)

        record = None
        try:
            firstSQL = "SELECT asset_code FROM bitatom_asset WHERE " \
                       "base_symbol='%s' " % res['symbol']
            self.dbconn.connect()
            cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
            if cursor.execute(firstSQL) > 0:
                record = cursor.fetchone()
            cursor.close()
            return record
        except Exception as e:
            Logger.error('select_deposit_record failed. err:{}'.format(e))
Example #14
0
 def insert_deposit_request(self, rq):
     try:
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         cursor.execute(
             "insert into dgv_deposit_request(eos_trx_id, from_account, to_account, user_id, amount, asset_code, block_num, deposit_status, create_time, update_time) values ('%s', '%s', '%s','%s', '%s', '%s', '%s',  '%s', '%s', '%s')"
             % (rq['trx_id'], rq['from_account'], rq['to_account'],
                rq['like_d_account'], rq['amount'], rq['asset_code'],
                rq['block_num'], rq['deposit_status'], rq['create_time'],
                rq['update_time']))
         self.dbconn.commit()
         cursor.close()
     except Exception as e:
         self.dbconn.rollback()
         Logger.error(
             'Insert in deposit request table failed. {}'.format(e))
 def assert_text(self, **kwargs):
     reality = self.locator(**kwargs).text
     try:
         assert reality == kwargs['expect']
         return True
     except:
         Logger().get_logger().info('断言失败,断言信息:{0} != {1}'.format(reality, kwargs['expect']))
         return False
Example #16
0
    def get_code_record(self, chain_id):
        """

        :return:
        """
        select_rows = None
        select_sql = "SELECT * FROM wallet_asset WHERE " \
                     "chain_id='%s' " % chain_id
        try:
            self.dbconn.connect()
            cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
            cursor.execute(select_sql)
            select_rows = cursor.fetchall()
            cursor.close()
        except Exception as err:
            Logger.error('Get code record failed. {}'.format(err))
        return select_rows
Example #17
0
 def get_last_block(self, keyword_id):
     """
         获取最后的充值区块
     :param keyword_id:
     :return:
     """
     temp_row = None
     select_sql = "SELECT keyword_value FROM deposit_block_stat_keyword WHERE keyword_id = '{}'".format(
         keyword_id)
     try:
         self.dbconn.connect()
         cursor = self.dbconn.cursor(pymysql.cursors.DictCursor)
         cursor.execute(select_sql)
         temp_row = cursor.fetchone()
         cursor.close()
         return temp_row['keyword_value']
     except Exception as e:
         Logger.error('%s' % e)
     return temp_row
Example #18
0
 def update_last_block(self, keyword_id, end):
     """
         更新最后的充值区块
     :param keyword_id:
     :param end:
     :return:
     """
     current_time = int(round(time.time() * TIME_MULTIPLE))
     update_sql = "UPDATE deposit_block_stat_keyword SET keyword_value = {}, update_time = {} WHERE keyword_id = '{}' ".format(
         end, current_time, keyword_id)
     try:
         self.dbconn.connect()
         cursor = self.dbconn.cursor()
         cursor.execute(update_sql)
         self.dbconn.commit()
         cursor.close()
         # 返回影响的行数
         return format(cursor.rowcount)
     except Exception as e:
         self.dbconn.rollback()
         Logger.error('update_last_block fail. {}'.format(e))
         return 0
Example #19
0
class ExcelConf:
    # 创建日志对象
    log = Logger().get_logger()

    # 定义Excel格式
    def cell_write(self, value, sheet, row):
        bold = Font(bold=True)
        if value == 'pass':
            fill = PatternFill('solid', fgColor='AACF91')
        elif value == 'false':
            fill = PatternFill('solid', fgColor='FF0000')
        else:
            pass
        sheet.cell(row=row, column=8).value = value.upper()
        sheet.cell(row=row, column=8).fill = fill
        sheet.cell(row=row, column=8).font = bold

    # 读取配置文件中的信息,获取excel路径,基于yaml获取文件
    def load_yaml(self, yaml_path):
        file = open(yaml_path, 'r', encoding='utf-8')
        file_data = yaml.load(file, Loader=yaml.FullLoader)
        return file_data

    # openpyxl打开excel用例
    def load_excel(self, excel_path):
        # 读取excel内容
        excel = openpyxl.load_workbook(excel_path)
        return excel

    # 获取excel的所有sheet
    def get_sheets(self, excel):
        sheets = excel.sheetnames
        return sheets

    # 关闭excel文件,释放资源
    def close(self, excel):
        excel.close()

    # excel保存
    def save_excel(self, excel, path):
        excel.save(path)
Example #20
0
class BasePage:
    url = 'http://39.98.138.157/shopxo/index.php'
    log = Logger().get_logger()

    # driver=webdriver.Chrome()
    def __init__(self, driver):
        self.driver = driver
        self.driver.implicitly_wait(2)

    # 访问url
    def open(self):
        self.driver.get(self.url)
        self.log.info('访问url:{}'.format(self.url))

    # 元素定位
    def locator(self, loc):
        self.log.info('正在使用:{}定位,其定位元素为:{}'.format(loc[0], loc[1]))
        return self.driver.find_element(*loc)

    # 输入
    def input_(self, loc, txt):
        self.locator(loc).send_keys(txt)
        self.log.info('正在输入:{}'.format(txt))

    # 点击
    def click(self, loc):
        self.locator(loc).click()

    # 切换至Iframe窗体
    def switch_to_iframe(self, loc):
        self.driver.switch_to.frame(self.locator(*loc))

    # 获取属性
    def get_attr(self, loc, name):
        self.locator(loc).get_attribute(name)

    # 获取文本
    def assert_text(self, loc):
        return self.locator(loc).text
Example #21
0
#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import poplib
import re
from email.parser import Parser
from logs.log import Logger
Log = Logger(__file__)


class MailServer(object):
    def __init__(self, user, pw, host, port=110):
        self.user = user
        self.pw = pw
        self.host = host
        self.port = port
        self.server = None
        self.conn = self.mail_recv()

    def mail_recv(self):
        """port: 110 standard port, 995 SSL port"""
        if self.port not in (110, 995):
            Log.error('POP port param should be in (110, 995)')
            return False
        self.server = poplib.POP3(self.host, self.port) if self.port == 110 \
            else poplib.POP3_SSL(self.host, self.port)
        try:
            self.server.user(self.user)
            self.server.pass_(self.pw)
            Log.info('<mail recv> Mail server connected!')
Example #22
0
def filter_account(name):
    if name in memo_keyword:
        Logger.error('Invalid account name.')
        return False
    return True
Example #23
0
#coding=utf-8
import os
import unittest
from testCase import getpathInfo
from testCase import readConfig
import common.HTMLTestRunner as HTMLTestRunner   #生成报告
import pythoncom
from conf.configEmail import send_email    #发送邮件
from logs.log import Logger     #打印log

path = getpathInfo.get_Path()
report_path = os.path.join(path,'result')
on_off = readConfig.ReadConfig().get_email('on_off')
log = Logger().get_logger()

class ALLTest():
    #初始化一些参数和数据
    def __init__(self):
        #全局参数
        global resultPath
        resultPath = os.path.join("D:/InterfaceTest/result/","report.html")
        self.caseListFile = os.path.join("D:/InterfaceTest/testFile/","caselist.txt")
        self.caseFile = path
        self.caseList = []

        log.debug('debug mesage')
        log.info('info message')
        log.warning("this is a waring log")
        log.error('error message')
        log.info(str.format("%s %s","resultPath",resultPath))
class ExcelExcutor(object):
    '''
        实例化对象
        结合参数调用关键字
        封装整合
    '''
    # 创建日志对象
    log = Logger().get_logger()
    ec = ExcelConf()
    excel_path = ''
    excel = ''

    def excute_get_sheets(self, excel_path_value):
        global excel_path
        global excel
        excel_path = excel_path_value
        excel = self.ec.load_excel(excel_path)
        sheets = self.ec.get_sheets(excel)
        return sheets

    # Excel执行读写操作
    def excute_web(self, excel_path_value):
        sheets = self.excute_get_sheets(excel_path_value)
        try:
            # 读取所有Sheet页面
            for sheet in sheets:
                self.log.info('获取{0}内容成功,现在开始执行自动化测试......'.format(sheet))
                sheet1 = excel[sheet]
                # 基于Sheet内容,运行测试用例
                for value in sheet1.values:
                    param = {}
                    param['loc'] = value[2]
                    param['value'] = value[3]
                    param['txt'] = value[4]
                    param['expect'] = value[6]
                    # 判断文件,从用例内容开始执行
                    if type(value[0]) is int:
                        # 判断关键字列,如果是open_browser,则实例化对象,如果不是,则进行其他元素操作
                        if value[1] == 'open_browser':
                            self.log.info('现在执行关键字:{0},操作描述:{1}'.format(value[1], value[5]))
                            wf = WebUI_Framework(param['txt'])
                        # 判断是否为断言,若是断言则添加写入操作
                        elif 'assert' in value[1]:
                            self.log.info('现在执行关键字:{0},操作描述:{1}'.format(value[1], value[5]))
                            status = getattr(wf, value[1])(**param)
                            row = value[0] + 1
                            if status is True:
                                self.log.info('流程测试通过!')
                                self.ec.cell_write('pass', sheet1, row)
                            else:
                                self.log.info('流程测试失败!')
                                self.ec.cell_write('false', sheet1, row)
                            self.ec.save_excel(excel, excel_path)
                        # 定义常规关键字调用
                        else:
                            self.log.info('现在执行关键字:{0},操作描述:{1}'.format(value[1], value[5]))
                            getattr(wf, value[1])(**param)
                    else:
                        pass
        except Exception as e:
            self.log.exception('运行出现异常,信息描述:{0}'.format(e))
        finally:
            # 关闭读取的文件
            self.log.info("文件读取完毕,自动化执行结束!\n")
            self.ec.close(excel)
Example #25
0
# -*- coding:utf-8 -*-

from selenium import webdriver
import time
from data.config import Config, DATA_PATH
from logs.log import Logger

logger = Logger('BrowserEngine').get_logger()


class BrowserEngine(object):

    Firefox_path = Config().get('Firefox_path')
    IE_path = Config().get('IE_path')
    chrome_path = Config().get('chrome_path')
    URL = Config().get('url', index=0)
    user_name = Config().get('login_name')
    password = Config().get('login_password')
    yaml = DATA_PATH + '/config.yaml'

    def __init__(self, driver):
        self.driver = driver

    def open_browser(self, driver):

        # 根据browser的值调用对应浏览器的驱动器,并在日志中输出步骤
        browser = Config().get('browser')
        if browser == "Firefox":
            driver = webdriver.Firefox(self.Firefox_path)
            time.sleep(2)
            logger.info("starting FireFox browser....")
class WebUI_Framework(object):
    # 创建日志对象
    log = Logger().get_logger()

    # 初始化WebUI_Init类
    def __init__(self, browser_type):
        self.driver = open_browser(browser_type)

    def visit(self, **kwargs):
        self.driver.get(kwargs['txt'])

    # 关闭浏览器
    def quit(self, **kwargs):
        self.driver.quit()

    # 依据不同的定位方法,进行定位操作
    def locator(self, **kwargs):
        try:
            return self.driver.find_element(getattr(By, kwargs['loc'].upper()), kwargs['value'])
        except Exception as e:
            print('元素定位失败,信息:{0}'.format(e))

    # 依据不同的定位方法,进行点击操作
    def click(self, **kwargs):
        self.locator(**kwargs).click()

    # 依据不同的定位方法,进行输入操作
    def input(self, **kwargs):
        self.locator(**kwargs).send_keys(kwargs['txt'])

    # 定义强制等待
    def sleep(self, **kwargs):
        time.sleep(kwargs['txt'])

    # 定义隐式等待
    def wait(self, **kwargs):
        self.driver.implicitly_wait(kwargs['txt'])

    # 切换至新窗体
    def switch_to_new_current(self, **kwargs):
        handles = self.driver.window_handles
        self.driver.switch_to.window(handles[1])

    # 关闭旧窗体
    def close_old_current(self, **kwargs):
        self.driver.close()

    # 切换至旧窗体
    def switch_to_old_current(self, **kwargs):
        handles = self.driver.window_handles
        self.driver.switch_to.window(handles[0])

    # 切换至新窗体,并关闭旧窗体
    def switch_and_close(self, **kwargs):
        handles = self.driver.window_handles
        self.driver.close()
        self.driver.switch_to.window(handles[1])

    # 切换至Iframe窗体
    def switch_to_iframe(self, **kwargs):
        self.driver.switch_to.frame(self.locator(**kwargs))

    # 切换回默认窗体
    def switch_to_default(self, **kwargs):
        self.driver.switch_to.default_content()

    # 文本断言
    def assert_text(self, **kwargs):
        reality = self.locator(**kwargs).text
        try:
            assert reality == kwargs['expect']
            return True
        except:
            Logger().get_logger().info('断言失败,断言信息:{0} != {1}'.format(reality, kwargs['expect']))
            return False
Example #27
0
import sys, os
reload(sys)
sys.setdefaultencoding('utf-8')
import zipfile
from selenium import webdriver
# from selenium.webdriver.common.proxy import *
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from logs.log import Logger
import browser as bo
from util import *
Log = Logger(__name__)


class Initial_browser(object):
    def __init__(self, bs_conf_obj):
        self.conf = bs_conf_obj

    def set_chrome(self):
        options = webdriver.ChromeOptions()
        # options.add_extension(os.path.join(os.getcwd(), 'chromeExtentions', 'WebRTC Network Limiter_0_2_1_3.crx'))
        options.add_extension(os.path.join(os.getcwd(), 'chromeExtentions', 'WebRTC Control.crx'))
        options.add_extension(os.path.join(os.getcwd(), 'chromeExtentions', 'CanvasFingerprintBlock_1_5.crx'))
        options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"])
        if not os.path.exists(self.conf.execute_path):
            raise Exception('Please set chromedriver path, or add it into environ path')
        if self.conf.proxy:
Example #28
0
# -*- coding:utf-8 -*-

import unittest
from pageObjects.Department_manage import DepartmentPage
from frameWork.browser_engine import BrowserEngine
import time
from logs.log import Logger

DEPARTMENT_NAME = '自动化测试部门66'
logger = Logger(logger_name='TestDepartmentManage').get_logger()


class TestDepartmentManage(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        """
        测试固件的setUp()的代码,主要是测试的前提准备工作
        :return:
        """
        browse = BrowserEngine(cls)
        cls.driver = browse.open_browser(cls)

    # @classmethod
    # def tearDownClass(cls):
    #     """
    #     测试结束后的操作,这里基本上都是关闭浏览器
    #     :return:
    #     """
    #     cls.driver.quit()
Example #29
0
# __author__ = 'Yang'
# -*- coding:utf-8 -*-

from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
import time
from logs.log import Logger

logger = Logger(logger_name='BasePage').get_logger()


class BasePage(object):
    """
        封装一个页面基类,让所有页面继承这个基类
    """

    # 初始化driver
    def __init__(self, driver):
        self.driver = driver
        self.wait = WebDriverWait(self.driver, 10, 0.5)

    def clear_cookies(self):
        """
        清除驱动初始化后的所有cookies
        """
        self.driver.delete_all_cookies()
        logger.info('clear cookies!!')