def tools_main_run(): parser = argparse.ArgumentParser( description="Get devices info and get apk info.") parser.add_argument('--apk', help="apk file path.") parser.add_argument( '--adb', default='adb', help="set the `adb` path if ANDROID_HOME not configured. default: adb " ) parser.add_argument( '--aapt', default='aapt', help= "set the `aapt` path if ANDROID_HOME not configured. default: aapt ") color_print("appuidriver {}".format(__version__), "GREEN") args = parser.parse_args() if args.apk: print( Android.gen_capabilities(apk_abs_path=args.apk, aapt_exe_4path=args.aapt)) else: devices = Android.get_devices(args.adb) print(devices)
def node_main_run(): parser = argparse.ArgumentParser(description="selenium server jar with node mode.") parser.add_argument( '--java-path', default='java', help="path of java. default is `java` if JAVA_HOME is configured. ") parser.add_argument( '--port', type = int, default = 5555, help="listen port for node mode. default port: 5555") parser.add_argument( '--hub-ip', default = "localhost", help="hub host or hub ip which need to connect. default host: localhost") parser.add_argument( '--hub-port', type = int, default = 4444, help="hub port which need to connect. default: 4444") parser.add_argument( 'server_jar', help="selenium server jar path for selenium grid mode") color_print("webuidriver {}".format(__version__), "GREEN") args = parser.parse_args() SeleniumJar(args.server_jar, args.java_path).node(args.port,(args.hub_ip, args.hub_port)).start_server()
def test_color_print(self): color_print('WHITE message') color_print('cyan message', 'cyan') color_print('red message', 'red') color_print('yellow message', 'yellow') color_print('green message', 'green') print('----')
def appium_main_run(): parser = argparse.ArgumentParser(description="appium server command line.") parser.add_argument( 'address', help= "appium server address, loopback address not suggest to use if grid mode. e.g. 192.168.1.1:4723" ) parser.add_argument( '--device-name', help="android device name. bind device to appium. e.g. HuaWei p10 plus" ) parser.add_argument( '--device-version', help= "android device platform version. bind device platform version to appium. e.g. 4.4.4" ) parser.add_argument( '--hub-ip', help="hub ip address in grid mode. register current appium to hub.") parser.add_argument( '--hub-port', type=int, default=4444, help= "hub port in grid mode. register current appium to hub. default: 4444") parser.add_argument( '--chromedriver-executable', help= "ChromeDriver executable full path for webview. See https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md for more detail" ) color_print("appuidriver {}".format(__version__), "GREEN") args = parser.parse_args() if len(args.address.split(":", 1)) < 2: return "command parameter error." ip, port = args.address.split(":", 1) server = AppiumJs(port=int(port)) if args.chromedriver_executable: server.appium_cmd.extend( ["--chromedriver-executable", args.chromedriver_executable]) if args.device_name: server.bind_device(device_id=args.device_name, platform_version=args.device_version) if args.hub_ip: server.node(ip, hub_address=(args.hub_ip, args.hub_port)).start_server() server.start_server()
def remote_main_run(): parser = argparse.ArgumentParser( description="Tools for web ui test. Base on rtsf.") parser.add_argument('case_file', help="yaml testcase file") parser.add_argument('--log-level', default='INFO', help="Specify logging level, default is INFO.") parser.add_argument('--log-file', help="Write logs to specified file path.") parser.add_argument('--package', help="app package name under test.") parser.add_argument('--activity', help="app activity name.") parser.add_argument('--apk', help="apk file path.") parser.add_argument( '--aapt', default='aapt', help= "set the `aapt` path if ANDROID_HOME not configured. default: aapt ") parser.add_argument('--ip', default="localhost", help="remote hub ip. default: localhost") parser.add_argument('--port', type=int, default=4444, help="remote hub port. default: 4444") color_print("appuidriver {}".format(__version__), "GREEN") args = parser.parse_args() logger.setup_logger(args.log_level, args.log_file) result1 = True if args.apk else False result2 = True if args.package and args.activity else False if result1 or result2: RemoteDriver._apk_abs_path = args.apk RemoteDriver._app_package = args.package RemoteDriver._app_activity = args.activity RemoteDriver._aapt_exe_path = args.aapt RemoteDriver._remote_ip = args.ip RemoteDriver._remote_port = args.port runner = TestRunner(runner=RemoteDriver).run(args.case_file) html_report = runner.gen_html_report() color_print("report: {}".format(html_report)) else: print("The parameter must include either an apk or package&activity.") return
def remote_main_run(): parser = argparse.ArgumentParser(description="Tools for web ui test. Base on rtsf.") parser.add_argument( '--log-level', default='INFO', help="Specify logging level, default is INFO.") parser.add_argument( '--log-file', help="Write logs to specified file path.") parser.add_argument( '--browser', default="chrome", help="set browser, only chrome or firefox. default: chrome") parser.add_argument( '--download-path',default=None, help="set the path where to save download file from browser. default: None") parser.add_argument( '--marionette', action='store_true', default=False, help="use firefox driver `geckodriver.exe` if True. default: False") parser.add_argument( '--ip', default="localhost", help="remote hub ip. default: localhost") parser.add_argument( '--port', type=int, default=4444, help="remote hub port. default: 4444") parser.add_argument( 'case_file', help="yaml testcase file") color_print("webuidriver {}".format(__version__), "GREEN") args = parser.parse_args() logger.setup_logger(args.log_level, args.log_file) RemoteDriver._browser = args.browser RemoteDriver._download_path = args.download_path RemoteDriver._marionette = args.marionette RemoteDriver._remote_ip = args.ip RemoteDriver._remote_port = args.port runner = TestRunner(runner = RemoteDriver).run(args.case_file) html_report = runner.gen_html_report() color_print("report: {}".format(html_report))
def hub_main_run(): parser = argparse.ArgumentParser(description="selenium server jar with hub mode.") parser.add_argument( '--java-path', default='java', help="path of java. default is `java` if JAVA_HOME is configured. ") parser.add_argument( '--port', type = int, default = 4444, help="listen port for hub mode. default port: 4444") parser.add_argument( 'server_jar', help="selenium server jar path for selenium grid mode") color_print("webuidriver {}".format(__version__), "GREEN") args = parser.parse_args() SeleniumJar(args.server_jar, args.java_path).hub(args.port).start_server()
def parse_locustfile(file_path): """ parse testcase file and return locustfile path. if file_path is a Python file, assume it is a locustfile if file_path is a YAML/JSON file, convert it to locustfile """ if not os.path.isfile(file_path): color_print("file path invalid, exit.", "RED") sys.exit(1) file_suffix = os.path.splitext(file_path)[1] if file_suffix == ".py": locustfile_path = file_path elif file_suffix in ['.yaml', '.yml', '.json']: locustfile_path = gen_locustfile(file_path) else: # '' or other suffix color_print("file type should be YAML/JSON/Python, exit.", "RED") sys.exit(1) return locustfile_path
def node_main_run(): parser = argparse.ArgumentParser(description="selenium server jar with node mode.") parser.add_argument( '--java-path', default='java', help="path of java. default is `java` if JAVA_HOME is configured. ") # VPN网络或者计算机有多个IP的情况(如VMware Network Adapter VMnet1),就会出现探测的IP不准确的情况 # 使用host 参数可以用于这种情况,指定要注册的IP。通常情况不需要指定 parser.add_argument( '--host', default="", help=""" IP or hostname : usually determined automatically. Most commonly useful in exotic network configurations (e.g. network with VPN) """) parser.add_argument( '--port', type=int, default=5555, help="listen port for node mode. default port: 5555") parser.add_argument( '--hub-ip', default="localhost", help="hub host or hub ip which need to connect. default host: localhost") parser.add_argument( '--hub-port', type=int, default=4444, help="hub port which need to connect. default: 4444") parser.add_argument( '--background', action="store_true", help="run this command in the background") parser.add_argument( 'server_jar', help="selenium server jar path for selenium grid mode") color_print("webuidriver {}".format(__version__), "GREEN") args = parser.parse_args() SeleniumJar(args.server_jar, args.java_path)\ .node((args.host, args.port), (args.hub_ip, args.hub_port)).start_server(block=not args.background)
def main_hrun(): """ parse command line options and run commands.""" parser = argparse.ArgumentParser( description="Tools for http(s) test. Base on rtsf.") parser.add_argument('--log-level', default='INFO', help="Specify logging level, default is INFO.") parser.add_argument('--log-file', help="Write logs to specified file path.") parser.add_argument('case_file', help="yaml testcase file") color_print("httpdriver {}".format(__version__), "GREEN") args = parser.parse_args() logger.setup_logger(args.log_level, args.log_file) runner = TestRunner(runner=HttpDriver).run(args.case_file) html_report = runner.gen_html_report() color_print("report: {}".format(html_report))