• 定时修改Jenkins配置


    一、执行前提:

    1、bat文件要求windows环境;
    2、脚本中已指定使用chrome浏览器,所以最好是有chrome;
    3、有安装python + Robot Framework,同时已装好Selenium2Library库;
    4、modify_task.batModifyJenkins.txt在同一目录下(不建议放在桌面,最好单独放在一个文件夹);
    5、定时设好后,别忘了让电脑禁止进入睡眠(或者也可以设置唤醒电脑再执行);

    二、脚本说明:

    ModifyJenkins.txt只是用于修改项目配置,并将项目加入待构建列表,不代表马上就开始构建;
    (可以根据需要来增加这个功能:关闭排在它前面的项目,以便立即开始构建);
    定时任务需要结合windows下的任务计划程序使用。
    思路是:
    1、在bat中写好执行RF脚本的命令(就一句 pybot + 脚本名称);
    2、使用任务计划程序来启动这个bat;(其实也可以直接执行脚本不通过bat,但是这样更方便些)

    三、根据需要修改参数(当然参数组成因项目而异):

    在ModifyJenkins.txt中修改要配置的参数。
    打开该文件后,可以看到“* Variables *”部分如下(举例):

    *** Variables ***
    ${Jenkins_url}    Jenkins_url    # 修改jenkins地址
    ${job_name}       job_name    # 修改要配置的项目,与Jenkins上的项目名称一致
    ${arg_purpose}    -arg_purpose    # 修改版本类型
    ${arg_version}    -arg_version    # 修改版本号
    ${arg_product}    -arg_product   # 修改对应产品

    这几个参数都要检查一遍,是否对应,修改后保存。
    注意不要增删到空格。

    四、使用任务计划程序定时:

    1、在开始-搜索栏输入“计划”,即可看到“任务计划程序”,打开;
    2、在右侧栏目点击“创建基本任务”;
    3、填入任务名称,如:ModifyJenkins_task(随意,自己能区分就好);
    4、触发条件根据需要选择,一般是选择“一次”即可;
    5、设定任务预期被执行的时间;
    6、在“操作”中选择的是“启动程序”;
    7、在“程序或脚本”中选择并打开modify_task.bat,在“起始于”中务必再填入modify_task.bat的位置;
    如:
    程序或脚本(强调脚本):F:RF_TEST est est_managermodify_task.bat
    起始于(强调位置):F:RF_TEST est est_manager

    8、再下一步不需要其他修改,点击完成即可。
    9、这个定时任务以后可以继续使用,在计划列表中找到它,打开它的属性,一般修改时间即可。

    更详细的设置请看我的另一篇:《结合Windows任务计划程序执行 Robot Framwork 脚本》

    五、查看执行报告:

    执行完成后,在该文件的目录下会有report.html,直接打开可查看执行结果。

    六、特别说明:

    如果要执行多个定时任务,modify_task.bat和ModifyJenkins.txt最好要一一对应;
    可在文件名上作区分,如增加前缀01、02等等。
    若ModifyJenkins.txt文件名发生变更,则需要修改与其对应的bat文件,编辑bat,替换文件名即可。

    附:源码(具体参数已做处理)

    1、ModifyJenkins.txt

    *** Settings ***
    Library           Selenium2Library
    
    *** Variables ***
    ${Jenkins_url}    Jenkins_url    # 修改jenkins地址
    ${job_name}       test    # 修改要配置的项目,与Jenkins上的项目名称一致
    ${arg_purpose}    -arg_purpose    # 修改版本类型
    ${arg_version}    -arg_version    # 修改版本号
    ${arg_product}    -arg_product   # 修改对应产品
    
    *** Test Cases ***
    login
        open browser    ${Jenkins_url}    chrome    ##修改对应Jenkins
        maximize browser window    #窗口最大化
        wait until element contains    xpath=//div[@class='login']/a    登录
        click element    xpath=//div[@class='login']/a    #进入登录
        input text    j_username    username    #输入用户名
        input text    j_password    password    #输入密码
        click button    登录
        sleep    1
    
    modify
        ${job_path}=    catenate    SEPARATOR=    xpath=//*[@id='job_    ${job_name}    ']/td[3]/a    #如xpath=//*[@id='job_test']/td[3]/a
        ${arg}=    catenate    str1    ${arg_purpose}    str2    ${arg_version}    str3  ${arg_product}    #将修改后的参数字串连接起来
        wait until element is visible    ${job_path}    error='所填项目不存在,请检查${job_name}'    #验证当前是否有该项目
        modify job arg    ${job_path}    ${arg}    #写入修改后的参数
        wait until element contains    xpath=//*[@id='yui-gen56-button']    保存
        click element    xpath=//*[@id='yui-gen56-button']    #点击保存
        wait until element contains    xpath=//*[@id='tasks']/div[5]/a[2]    立即构建
        click element    xpath=//*[@id='tasks']/div[5]/a[2]    #点击立即构建
        sleep    1
        [Teardown]    close browser
    
    *** Keywords ***
    modify job arg
        [Arguments]    ${job_path}    ${arg}
        click element    ${job_path}    #打开指定项目
        wait until element contains    //*[@id='tasks']/div[7]/a[2]    配置
        click element    //*[@id='tasks']/div[7]/a[2]    #打开配置页面
        Comment    wait until element contains    //*[@id='main-panel']/div/div/div/div[2]/div[3]/div/div[6]    构建
        Comment    click element    //*[@id='main-panel']/div/div/div/div[2]/div[3]/div/div[6]    #点击构建
        wait until element contains    xpath=//*[@id='yui-gen14']/table/tbody/tr[3]/td[3]/textarea    command    #找到构建参数的文本框
        input text    xpath=//*[@id='yui-gen14']/table/tbody/tr[3]/td[3]/textarea    ${arg}    #写入修改后的参数
    

    2、modify_task.bat

    pybot ModifyJenkins.txt
    博客园:http://www.cnblogs.com/CYTyeah CSDN:https://blog.csdn.net/qq_35081227
  • 相关阅读:
    struts1与struts2的防止表单重复提交
    JSTL 笔记
    fiddler的columns添加HTTPMethod
    兼容性测试技巧
    测试基础知识总结
    测试用例的书写方式及测试模板大全【转】
    软件测试的方法分类
    解决vue不支持promise语法问题
    vue-router 导航守卫
    e.target与事件委托简例【转】
  • 原文地址:https://www.cnblogs.com/CYTyeah/p/9358021.html
Copyright © 2020-2023  润新知