{‘_class’: ‘hudson.model.User’, ‘absoluteUrl’: ‘http://127.0.0.1:8080/user/admin’, ‘description’: ‘’, ‘fullName’: ‘admin’, ‘id’: ‘admin’, ‘property’: [{‘_class’: ‘jenkins.security.ApiTokenProperty’}, {‘_class’: ‘jenkins.security.LastGrantedAuthoritiesProperty’}, {‘_class’: ‘hudson.model.MyViewsProperty’}, {‘_class’: ‘hudson.model.PaneStatusProperties’}, {‘_class’: ‘hudson.security.HudsonPrivateSecurityRealm$Details’}, {‘_class’: ‘org.jenkinsci.main.modules.cli.auth.ssh.UserPropertyImpl’}, {‘_class’: ‘jenkins.security.seed.UserSeedProperty’}, {‘_class’: ‘hudson.search.UserSearchProperty’, ‘insensitiveSearch’: True}, {‘_class’: ‘hudson.model.TimeZoneProperty’}]}
查看 所有的方法
dir(server)
[‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘_add_missing_builds’, ‘_auth_resolved’, ‘_auths’, ‘_build_url’, ‘_get_encoded_params’, ‘_get_job_folder’, ‘_get_tag_text’, ‘_get_view_jobs’, ‘_maybe_add_auth’, ‘_request’, ‘_response_handler’, ‘_session’, ‘_timeout_warning_issued’, ‘assert_credential_exists’, ‘assert_folder’, ‘assert_job_exists’, ‘assert_node_exists’, ‘assert_promotion_exists’, ‘assert_view_exists’, ‘auth’, ‘build_job’, ‘build_job_url’, ‘cancel_queue’, ‘check_jenkinsfile_syntax’, ‘copy_job’, ‘create_credential’, ‘create_folder’, ‘create_job’, ‘create_node’, ‘create_promotion’, ‘create_view’, ‘credential_exists’, ‘crumb’, ‘debug_job_info’, ‘delete_build’, ‘delete_credential’, ‘delete_job’, ‘delete_node’, ‘delete_promotion’, ‘delete_view’, ‘disable_job’, ‘disable_node’, ‘enable_job’, ‘enable_node’, ‘get_all_jobs’, ‘get_build_console_output’, ‘get_build_env_vars’, ‘get_build_info’, ‘get_build_test_report’, ‘get_credential_config’, ‘get_credential_info’, ‘get_info’, ‘get_job_config’, ‘get_job_info’, ‘get_job_info_regex’, ‘get_job_name’, ‘get_jobs’, ‘get_node_config’, ‘get_node_info’, ‘get_nodes’, ‘get_plugin_info’, ‘get_plugins’, ‘get_plugins_info’, ‘get_promotion_config’, ‘get_promotion_name’, ‘get_promotions’, ‘get_promotions_info’, ‘get_queue_info’, ‘get_queue_item’, ‘get_running_builds’, ‘get_version’, ‘get_view_config’, ‘get_view_name’, ‘get_views’, ‘get_whoami’, ‘install_plugin’, ‘is_folder’, ‘jenkins_open’, ‘jenkins_request’, ‘job_exists’, ‘jobs_count’, ‘list_credentials’, ‘maybe_add_crumb’, ‘node_exists’, ‘promotion_exists’, ‘quiet_down’, ‘reconfig_credential’, ‘reconfig_job’, ‘reconfig_node’, ‘reconfig_promotion’, ‘reconfig_view’, ‘rename_job’, ‘run_script’, ‘server’, ‘set_next_build_number’, ‘stop_build’, ‘timeout’, ‘upsert_job’, ‘view_exists’, ‘wait_for_normal_op’, ‘wipeout_job_workspace’]
do操作方法
功能 | python方法 |
---|---|
项目操作 | create_job disable_job delete_job copy_job enable_job job_exists jobs_count upsert_job |
构建操作 | build_job delete_build build_job_url stop_build |
凭据操作 | create_credential delete_credentialcredential_exists |
视图操作 | create_view delete_view view_exists |
节点操作 | create_node disable_node delete_node enable_node node_exists |
晋级操作 | create_promotion delete_promotion promotion_exists |
取消队列 | cancel_queue |
检查jenkinsfile语法 | check_jenkinsfile_syntax |
检查项目信息 | debug_job_info |
文件夹操作 | is_folder create_folder |
安装插件 | install_plugin |
get获取方法
功能 | python方法 |
---|---|
获取项目信息 | get_all_jobs get_job_config get_job_info get_job_info_regex get_job_name get_jobs |
获取构建信息 | get_build_console_output get_build_env_vars get_build_info get_build_test_report |
获取凭据信息 | get_credential_config get_credential_info list_credentials |
get_info | |
获取节点信息 | get_node_config get_node_info get_nodes |
获取插件信息 | get_plugin_info get_plugins get_plugins_info |
获取晋级信息 | get_promotion_config get_promotion_name get_promotions get_promotions_info |
获取队列信息 | get_queue_info get_queue_item |
获取运行中构建 | get_running_builds |
获取版本 | get_version |
获取视图信息 | get_view_config get_view_name get_views |
获取当前用户 | get_whoami |
jenkins_open | |
jenkins_request |
更新操作
功能 | python方法 |
---|---|
关机 | quiet_down |
更新凭据 | reconfig_credential |
更新项目 | reconfig_job |
更新节点 | reconfig_node |
更新晋级 | reconfig_promotion |
更新视图 | reconfig_view |
重命名项目 | rename_job |
运行脚本 | run_script |
设置下次构建id | set_next_build_number |
演示实例
每个接口的使用方法:https://python-jenkins.readthedocs.io/en/latest/api.html
项目操作
我们需要认识一下Jenkins项目的config.xml,大部分API在创建项目的时候会使用xml文件。首先创建一个项目(任何类型的都可以)然后我们进入$JENKINS_HOME/jobs/目录查看我们这个项目生成的config.xml文件。
builds存放项目的构建信息。
ZeyangdeMacBook-Pro:jobs zeyang$ ls
demo-test
ZeyangdeMacBook-Pro:jobs zeyang$ ls demo-test/
buildsconfig.xml
config.xml
可以看到jenkins的文件存储都是以xml方式存储的。(后面我们需要利用这个xml创建一个新项目)
<?xml version='1.1' encoding='UTF-8'?> test false true false false false false使用方法获取项目配置信息
server.get_job_config(“demo-test”)
‘<?xml version=\'1.1\' encoding=\'UTF-8\'?>\n\n test\n false\n \n \n true\n false\n false\n false\n \n false\n \n \n \n’
掌握创建项目的方法使用
create_job
(name, config_xml)
- name 项目名称 字符串类型
- config_xml 配置文件 字符串类型
新建项目demo-test-02
config_xml = server.get_job_config(“demo-test”)
server.create_job(“demo-test-02”,config_xml)
验证项目是否创建成功
server.job_exists(“demo-test-02”)
True
复制一个新项目demo-test-03
copy_job
(from_name, to_name)
- from_name 源项目 字符串类型
- to_name 目标项目 字符串类型
当源项目名称与目标项目名称一致的时候会报错。JenkinsException
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
续更新**
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-7BX9hfFp-1712792524455)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!