前文:做接口自动化的时候,想当别人提交的时候,结合公司所用的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。