def appium_desired(self, device_name, android_version, port, run, cases): clear_cmd = 'adb -s ' + device_name + ' shell pm clear com.vanthink.student.debug' os.system(clear_cmd) android = { 'platformName': 'Android', 'deviceName': device_name, 'package': 'com.tencent.mm', 'platformVersion': android_version, 'port': port, 'systemPort': port + 10, 'app': gv.PATH(gv.PACKAGE), 'chromedriverExecutableDir': 'D:/Tools', 'chromeOptions': { 'androidProcess': 'com.tencent.mm:appbrand0' }, # 下拉入口 "automationName": "UiAutomator2", "newCommandTimeout": 3600, "unicodeKeyboard": True, "resetKeyboard": True, "noReset": True } log = Log() log.set_logger(device_name, run.get_path() + '\\' + 'client.log') log.i('platformName: %s', android['platformName']) log.i('platformVersion: %s', android_version) log.i('deviceName: %s', device_name) log.i('app: %s', android['app']) log.i('appium server port: %d\n', port) addr = "http://127.0.0.1:%s/wd/hub" % port driver = webdriver.Remote(addr, android) base_page = BasePage() base_page.set_device_name(device_name) mysql = SqlDb() mysql.start_db() base_page.set_db(mysql) # 驱动driver 设置 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()) print('start cases') run.run_httprunner(cases) print('end') # driver.quit() return driver
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()
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()