Пример #1
0
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)
Пример #2
0
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()
Пример #3
0
 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('----')
Пример #4
0
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()
Пример #5
0
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
Пример #6
0
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))
Пример #7
0
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()
Пример #8
0
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
Пример #9
0
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)
Пример #10
0
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))