1.在linux服务器上下载接口脚本中使用到的插件,如requests,咱们服务器上有两个python版本,个人脚本是py3的,因此要指定下载,以下css
[10:56 root@cctest200 ~]# pip install -t /usr/local/lib/python3.6/site-packages/ requestshtml
2.脚本上传gitlab,上传命令请参考我上一篇博客python
3.jenkins建立一个自由风格的项目,源码管理选择git,贴上你的仓库地址linux
4.execute shell,第一行可能要根据各公司的路径不一样作调整,第二行是你要运行的脚本路径--这里我有一车的话要讲,等下看最后git
5.jenkins 下载html report 插件,第一行写你报告存放的文件夹名称(相对路径),我这里默认的是shell
/home/jenkins/workspace/huj_paycenter/report
第二行是默认的报告名称,这里建议不要改动,而且把你生成的报告名称改为如出一辙的,每次生成报告后覆盖;不要搞成test+时间之类的,亲测可能报404错误;page tiltle随便写,最后一行不用动;我对路径这个真的不熟,以致于我以为在pycharm上运行没问题,搬到服务器上也同样ok了(天真),昨天反复测试,发现运行虽然没报错,可是始终没产生最新的报告,就在于我这个./report写成了 report以致于一直获取不到最新的报告服务器
补充另一个缘由,execute shell里的路径也可能写错了,好比咱们测试本身新建了一个jenkins,须要把代码从旧的移到新的来,旧的路径是jenkins/workspace,而新的则是jenkins1/jobs/workspace,这些小细节必定要注意了,由于不会报错,要本身细细的查看gitlab
6.构建成功后打开html报告查看格式,极可能你会看到css样式丢失的样子,不美观,这里先给一条临时方案测试
在jenkins--系统管理--脚本命令行里输入:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")。点击运行spa
而后再从新构建接口脚本,再次打开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 版本及文件便可
仍是要多动手多实践,否则好东西你都不知道本身一点都不懂!
测试代码:
import os import sys print("***获取当前目录***") #两种方式实现 print(os.getcwd()) print(os.path.abspath(os.path.dirname(__file__))) #获取payApi print("***获取上级目录***") print(os.path.abspath(os.path.dirname(os.getcwd()))) #获取payCenter print(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) print("***返回路径列表***") print(sys.path) #返回路径列表 print ('***获取上上级目录***') print (os.path.abspath(os.path.join(os.getcwd(), "../.."))) #Pycharmprojects
再补充一个小技巧,jenkins有钉钉通知的插件,咱们能够在这个通知连接上作文章,让通知到群里的连接能够直接被打开而后查看报告,默认的连接是域名(ip)/jenkins,咱们在后面再拼上报告的连接,记得必定要加上?由于jenkins构建成功后的通知会自动给你加上http://127.0.0:8010/jenkins/job/huj_paycenter/HTML_20Report/job/huj_paycenter/58/ 20report 后面的那一串job~~~~~~,致使直接点击群通知的连接时404,
加上?自定义参数后就不会有这个问题了,能够直接打开