Example #1
0
    def start_driver(case_info, pro_name):
        opt = webdriver.ChromeOptions()
        opt.add_experimental_option(
            "prefs",
            {"profile.default_content_setting_values.media_stream_mic": 1})
        driver = webdriver.Chrome(chrome_options=opt)
        driver.maximize_window()
        driver.get(gv.BASE_URL)
        run = RunCases(pro_name)
        log = Log()
        log.set_logger(pro_name, run.get_path() + '\\' + 'client.log')
        log.i('测试项目:' + pro_name)
        log.i('测试工具:selenium')
        log.i('输出报告:' + str(run.get_path()) + '\n')

        base_page = BasePage()
        base_page.set_driver(driver)
        #
        path = ReportPath()
        path.set_path(run.get_path())  #
        sql = SqlDb()
        try:
            sql.start_db()
            time.sleep(3)
            run.create_report(case_info)
            driver.quit()
        except AssertionError as e:
            log.e('AssertionError, %s', e)
            print(e)
            driver.quit()
        sql.close_db()
Example #2
0
    def _run_cases(server_url, run, cases):
        log = Log()
        log.set_logger(run.get_device()['deviceName'],
                       run.get_path() + '\\' + 'client.log')

        log.i('platformName: %s', run.get_device()['platformName'])
        log.i('platformVersion: %s', run.get_device()['platformVersion'])
        log.i('deviceName: %s', run.get_device()['deviceName'])
        log.i('app: %s', run.get_device()['app'])
        # log.i('package: %s', run.get_device()['package'])
        # log.i('appActivity: %s', run.get_device()['appActivity'])
        # log.i('noReset: %s', run.get_device()['noReset'])
        log.i('appium server port: %d\n', run.get_port())

        addr = "http://%s:%s/wd/hub" % (server_url['hostname'],
                                        server_url['port'])
        remote = run.get_device()
        # init driver
        driver = webdriver.Remote(addr, remote)

        # set cls.driver, it must be call before operate on any page
        base_page = BasePage()
        base_page.set_driver(driver)

        login_status = LoginStatus()
        login_status.set_status(False)

        # set cls.path, it must be call before operate on any page
        path = ReportPath()
        path.set_path(run.get_path())

        try:
            time.sleep(5)
            print('start cases')
            run.run(cases)
            print('end')
        except AssertionError as e:
            log.e('AssertionError, %s', e)

        # quit driver
        driver.quit()
Example #3
0
class MyDBOperate:
    """数据库操作"""

    def __init__(self):
        self.db = None
        self.cursor = None
        self.logger = Log()

    @teststeps
    def connectDB(self):
        """连接数据库"""
        try:
            config = {
                'host': str(gv.DB_HOST),
                'user': gv.DB_USERNAME,
                'passwd': gv.DB_PASSWORD,
                'port': int(gv.DB_PORT),
                'db': gv.DB_DATABASE,
                'charset': gv.DB_CHARSET
            }
            # connect to DB
            self.db = pymysql.connect(config)
            # create cursor
            self.cursor = self.db.cursor()
            print("Connect DB successfully!")
        except ConnectionError as ex:
            self.logger.e(str(ex))

    @teststeps
    def execute_sql(self, sql):
        """执行SQL语句"""
        self.connectDB()
        try:
            # executing sql
            self.cursor.execute(sql)
            # executing by committing to DB
            self.db.commit()
            self.close_db()
            return self.cursor
        except:
            # 发生错误时回滚
            self.db.rollback()
            print('❌❌❌ Error - 执行SQL语句发生错误,回滚数据库')

    @teststeps
    def get_one(self, sql):  # 根据解释/单词查询指定单词/解释
        result = 0
        try:
            self.execute_sql(sql)
            result = self.cursor.fetchone()
        except:
            print("❌❌❌ Error - unable to fetch data.json!!")
        self.db.close()
        return result

    @teststeps
    def get_all_word(self, sql):
        """获取所有数据"""

        results = 0
        try:
            self.execute_sql(sql)
            results = self.cursor.fetchall()
        except:
            print("❌❌❌ Error - unable to fetch all data.json!!")
        self.db.close()
        return results

    @teststeps
    def close_db(self):
        """关闭数据库"""
        self.db.close()
        print("Database closed!")