Ericsson Ridea从入门到精通(一)

来源:互联网 发布:淘宝主图制作技巧 编辑:程序博客网 时间:2024/06/05 06:17

  最近负责AAT项目的相关测试工作,开始接触到Ridea项目,这是公司开发的一个针对AAT自动化测试的工具,使用python+seleniuem开发,本系列博客为了记录从入门开始学习的点滴。

  时间:二〇一七年八月一日 16:28:56
  • 直到现在还只知道Ridea是干嘛用的,具体怎么用还是一无所知,相关的文档也并没有,所以还是一步一步分析代码来搞定他。

  • 找到入口run.py 为什么是他?猜的

    ridea入口

    一共四个函数,看名字就知道干啥的了,第四个main()才是主体,本文就简单分析一下前三个。

- 1. prepare_browser_driver()

def prepare_browser_driver():    browser = config.browser_setup['browser']    # 为seleniuem提前准备谷歌浏览器驱动器    if 'chrome' == browser and not is_on_windows():        # 驱动的位置        driver_dir = os.path.join(CurrentDir, 'driver')        # 驱动是否存在        if not has_driver(browser, driver_dir):            # 解压            extract_driver(browser, driver_dir)def is_on_windows():    return 'Windows' == platform.system()

- 2. parse_arguments()

def parse_arguments(args):    """ This function is to parse command arguments.    """    parser = argparse.ArgumentParser(prog="run",                                     description="Run regression")    parser.add_argument('-d', action='store_true', dest='debug', default=False,                        help='Run regression in debug mode')    parser.add_argument('-l', action='store', dest='log_path',                        default=os.path.join(CurrentDir, 'logs'),                        help='Regression output log path(default:<./logs>)')    parser.add_argument('-m', action='store_true', dest='mail', default=False,                        help='Mail regression result to team')    parser.add_argument('-r', action='store', dest='reg_apps',                        default=[], type=arg_list,                        help='Run regression according to the given name'                             '(default: all regressions')    parser.add_argument('-c', action='store',                        dest='cases', default=[], type=arg_list,                        help='Designate cases to run. A case is method name '                             'of a TestCase Class. Seperate multiple cases '                             'by comma')    parser.add_argument('-s', action='store',                        dest='suites', default=[], type=arg_list,                        help='Designate suites to run. A suite is module name '                             'or class name of a TestSuite Class. Seperate '                             'multiple suites by comma')    parser.add_argument('-u', action='store',                        dest='user_mail', default=[], type=arg_list,                        help='Mail regression result to users')    parser.add_argument('-e', action='store',                        dest='email_list', default=[], type=arg_list,                        help='Mail regression result to this list')    opts = parser.parse_args()    return opts

argparser模块来实现run.py的命令行参数解析,可以看出哪些有效参数

run.py -h 运行
argparser

argparser模块会自动为程序天上[-h]功能
add_argument()第二个参数action的值store和store_ture
可以看出action指定为store的[lrcsue],使用时必须指定参数值如 run.py -l log_path;而指定为store_true表示boolean开关,使用时不指定值如 run.py -d 打开debug开关

- 3. set_logging()

    log_name = 'regression_FULL' if len(opts.reg_apps) == 0 else 'regression_' + '_'.join(opts.reg_apps)    set_logging(log_name, opts.debug, opts.log_path)

设置log的路径和log文件的name
如果没有指定了-r 参数则log=regression_FULL.log.否则’_’.join(opts.reg_apps),如果join()参数是”123”则返回”1_2_3”,如果是list类型如[“aa”,”bb”,”cc”]则返回”aa_bb_cc”,log=regression_aa_bb_cc.log

原创粉丝点击