打造專屬測試平台2-使用Python-Jenkins模塊調用Jenkins API,修改Job配置並運行


Jenkins提供了許多API供我們遠程調用,而Python-Jenkins模塊將它們封裝,更加簡化了調用相關的操作。

具體需求

比如,最近我在做自動化測試時,想更加靈活的調用測試腳本,於是寫了一個Web前端頁面去篩選待執行的測試腳本,並將腳本名稱通過Jenkins API傳遞到Job配置中,再執行該Job,即開始測試。

前端頁面Demo如下:

篩選完測試腳本后,修改Jenkins Job配置,將構建信息中的紅框部分即測試腳本名稱,替換成篩選后的腳本名稱。

如何實現

為了實現上述功能,該怎么做呢?下面會用到Python-Jenkins模塊提供的get_job_config()、reconfig_job()、build_job()方法,達到讀取配置,修改配置以及觸發job的目的。

import jenkins
import re

def set_job_and_run_testcase(testcase, job_name="demo"):
    # 創建jenkins實例
    server = jenkins.Jenkins("http://my_jenkins_url", username="jenkins_username", password="jenkins_password")
    # 獲取job當前的配置
    config = server.get_job_config(job_name)
    # 使用正則表達式,替換job當前配置中的testcase字段
    new_config = re.sub(r'python runner_for_jenkins.py -t ("|").*?("|")',
                        r'python runner_for_jenkins.py -t "%s"' % testcase, config)
    # 使用new_config成為job的配置
    server.reconfig_job(job_name, new_config)
    # 運行job
    server.build_job(job_name)

if __name__ == '__main__':
    set_job_and_run_testcase("testcases/case2.py,testcases/case3.py")

 運行結果:

可以看到成功地修改了Job配置信息。需要說明的是,Jenkins API提供的操作遠不止我們現在看到的,它幾乎覆蓋了Jenkins方方面面的操作,所以Python-Jenkins模塊還是非常有用的,感興趣的朋友可在文后的參考資料中進一步了解。

 

參考資料

  • https://python-jenkins.readthedocs.io/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM