说明:这种方法不太稳定,现已找到 Jenkins 自带的配置多参数的方法,
详见我的这篇:Jenkins构建多配置项目(Multi-configuration)
一、执行前提:
1、bat文件要求windows环境;
2、脚本中已指定使用chrome浏览器,所以最好是有chrome;
3、有安装python + Robot Framework,同时已装好Selenium2Library库;
4、modify_task.bat
和ModifyJenkins.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\test\test_manager\modify_task.bat
起始于(强调位置):F:\RF_TEST\test\test_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