1.在linux服务器上下载接口脚本中使用到的插件,如requests,我们服务器上有两个python版本,我的脚本是py3的,所以要指定下载,如下
[10:56 root@cctest200 ~]# pip install -t /usr/local/lib/python3.6/site-packages/ requests
2.脚本上传gitlab,上传命令请参考我上一篇博客
3.jenkins创建一个自由风格的项目,源码管理选择git,贴上你的仓库地址
4.execute shell,第一行可能要根据各公司的路径不同做调整,第二行是你要运行的脚本路径--这里我有一车的话要讲,等下看最后
5.jenkins 下载html report 插件,第一行写你报告存放的文件夹名称(相对路径),我这里默认的是
/home/jenkins/workspace/huj_paycenter/report
第二行是默认的报告名称,这里建议不要改动,并且把你生成的报告名称改成一模一样的,每次生成报告后覆盖;不要搞成test+时间之类的,亲测可能报404错误;page tiltle随便写,最后一行不用动;我对路径这个真的不熟,以至于我觉得在pycharm上运行没问题,搬到服务器上也一样ok了(天真),昨天反复测试,发现运行虽然没报错,但是始终没产生最新的报告,就在于我这个./report写成了 report以至于一直获取不到最新的报告
补充另外一个原因,execute shell里的路径也可能写错了,比如我们测试自己新建了一个jenkins,需要把代码从旧的移到新的来,旧的路径是jenkins/workspace,而新的则是jenkins1/jobs/workspace,这些小细节一定要注意了,因为不会报错,要自己细细的查看
6.构建成功后打开html报告查看格式,很可能你会看到css样式丢失的样子,不美观,这里先给一条临时方案
在jenkins--系统管理--脚本命令行里输入:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")。点击运行
然后再重新构建接口脚本,再次打开html报告即可查看完美报告
2
好啦,现在接第4条接着埋汰自己,可以看到我在execute shell里写了多行但注释掉了,原因就是我运行runtestcase时没有报错,但是运行结果是
觉得real困惑,因为在pycharm里运行的很6,完全没有问题;后来请教了大神才知道是因为我没有指定runtestcase里导入文件的路径,jenkins构建时找不到这些文件,当然就不会运行了(但你为什么不报错?)
当我们导入一个模块时:import xxx,默认情况下python解析器会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中:这就是为啥你在pycharm里没问题,因为它都给你设置好了,但搬到服务器上不会,所以你需要明确指定你导入的这些文件的路径
比如,下方圈起来的这些我原本写的是相对路径,比如../payApi什么的,但是放服务器上就不行了,你必须要写清楚
***获取上级目录***
print(os.path.abspath(os.path.dirname(os.getcwd())))
运行结果是/Users/queena/PycharmProjects/payCenter,大的路径指明了,你的import才能顺着找到相关的文件
然后你的运行命令很简单,指明要执行的python3 版本及文件即可
还是要多动手多实践,不然好东西你都不知道自己一点都不懂!
再补充一个小技巧,jenkins有钉钉通知的插件,我们可以在这个通知链接上做文章,让通知到群里的链接可以直接被打开然后查看报告,默认的链接是域名(ip)/jenkins,我们在后面再拼上报告的链接,记得一定要加上?因为jenkins构建成功后的通知会自动给你加上http://127.0.0:8010/jenkins/job/huj_paycenter/HTML_20Report/job/huj_paycenter/58/ 20report 后面的那一串job~~~~~~,导致直接点击群通知的链接时404,
加上?自定义参数后就不会有这个问题了,可以直接打开