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

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

求助:这个自动化过程本地执行没问题,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 文件路径加入到系统路径中。

搞定了 sys.path

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