Selenium Jenkins 持续集成 python web 自动化报错获取不到 python 配置的 ini 信息。。

皆非 · 2018年01月10日 · 最后由 皆非 回复于 2018年01月24日 · 2489 次阅读

求助:这个自动化过程本地执行没问题,cmd 执行也没问题。
刚接触 Jenkins,部署这块不是很熟悉,是否也是跟路径有关呢?

----------------------------------------------20180703----------------------------------------------

回头看看发现还不是很懂,研究了下,记录下。
解决方案:

当前.py 文件路径 E:\WEB-UI\tool\jenkins

# -*- coding: utf-8 -*-
import os

if __name__ == '__main__':
    print(os.path.dirname(os.path.abspath('.')))
    print(os.path.abspath(os.path.join(os.path.dirname(__file__))))
    print(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)))

以下是用 pycharm 执行的结果:

E:\WEB-UI\tool
E:\WEB-UI\tool\jenkins
E:\WEB-UI\tool

以下是 jenkins 执行的结果:

C:\Users\zhangjg\.jenkins\workspace   #返回Jenkins安装路径
E:\WEB-UI\tool\jenkins  #返回当前.py路径
E:\WEB-UI\tool  #返回当前.py上级目录路径

由此可见,使用

print(os.path.abspath(os.path.join(os.path.dirname(__file__))))

无论是在 Jenkins 执行还是 pycharm 执行均返回当前文件的绝对路径

----------------------------------------------20180703----------------------------------------------

以下转载自 https://www.cnblogs.com/meitian/p/6810652.html
还有种情况,导入自定义的包

jenkins 需要执行.py 的文件加上

rootpath = str('E:')  # 项目目录 E:\WEB_UI
syspath = sys.path
sys.path = []
sys.path.append(rootpath)  # 将工程根目录加入到python搜索路径中
sys.path.extend([rootpath + i for i in os.listdir(rootpath) if i[0] != "."])  # 将工程目录下的一级目录添加到python搜索路径中
sys.path.extend(syspath)
共收到 6 条回复 时间 点赞

runall.py

import sys
sys.path.append(r'E:\GwchinaWebRecord')

解决了原先问题,获取不到自定义方法路径问题,但是又遇到了新问题,ini 配置文件读取不到,本地调试没问题、cmd 运行也没问题,Jenkins 提示获取不到配置文件信息
哎。。。

目测就是路径的问题,建议获取项目绝对路径后加到 sys.path 中。
如下面是代码中用到的,把当前目录的父目录加到 sys.path 中

import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) 
Joo 回复

首先感谢您
目前的问题现象还是找不到 ini 配置文件的信息

import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) 

如果我在 runalltest.py 不加上这段代码,Jenkins 报错找不到 浏览器驱动,加上就没问题了。
但现在需要从 ini 读取信息,怎么把 ini 文件路径加入到系统路径?

这是 ini 文件

这是读取 ini 文件的.py

我的脚本放在 git 上的,全是相对路径,本地执行没问题的。但是放在 Jenkins 上读取 ini 出现了问题。
目前应该是如何将 ini 文件路径加入到系统路径中。

皆非 关闭了讨论 01月24日 17:26

搞定了 sys.path

皆非 关于 jenkins 自动运行脚本的问题! 中提及了此贴 07月03日 22:19
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册