前文:做接口自動化的時候,想當別人提交的時候,結合公司所用的rf框架,自動執提交人的所有的接口用例。
使用的python-gitlab庫,不是gitlab庫,執行的時候可以看到該庫也是通過訪問url的方式去獲取數據,調用這個庫就比較簡單了。
import gitlab url = xxxxxxx #gitlab服務端地址 private_token = xxxxxxx #授權一個token gl = gitlab.Gitlab(url,private_token ,api_version='4') #api_version默認是4,具體看自己公司的版本 gl.auth() #主動發起認證,好像不要也能獲取到數據
private_token 這里就比較坑,自己嘗試的時候百度了好多都沒有提到這個怎么來的,這里具體說明下,需要到gitlab里去分配訪問api的個人令牌
只有用這里生成的token才可以通過api訪問gitlab
project = gl.projects.get(400) #400是項目的id commit = project.commits.list()[00] #獲取最新的提交人信息,這里我取的第一個人的 git_name =commit.committer_name #可以直接提取用戶信息里的name,也可以獲取提交的id,created_at,message
項目id最快捷的就是進入目標項目頁面,F12顯示網頁源代碼,直接搜索:project_id,出現的value數字就是項目id
這里獲取到提交人的name了,我就可以結合公司的rf運行對應人的接口用例了
rnuorder = 'robot --pythonpath . --include {} case'.format(git_name) #rf的執行命令,打了這個人tag的都會執行 cmd_mkdir = "cd {}".format(cmd_path) #cmd_path為項目的目錄 cmd = "{0} && {1} ".format(cmd_mkdir, rnuorder) #整合多條命令 os.system(cmd) #執行命令
后面將這個py文件放jenkins里,當gitlab有提交時,就執行這個文件,這樣就提前知道提交人的接口用例是否有錯誤,還可以運行完后發送郵件通知,或者釘釘通知。
參考2個文檔:
- gitlab API: https://docs.gitlab.com/ee/api/
- python-gitlab SDK: https://python-gitlab.readthedocs.io/en/latest/api-objects.html
前者告訴你Gitlab API有哪些能力,后者告訴你Python如何調用這些API。