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()
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()
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!")