0

0

文件上传测试在本地通过但在Jenkins上失败的解决方案

心靈之曲

心靈之曲

发布时间:2025-08-15 19:28:00

|

680人浏览过

|

来源于php中文网

原创

文件上传测试在本地通过但在jenkins上失败的解决方案

文件上传测试在本地通过但在Jenkins上失败的解决方案

摘要:本文针对文件上传测试在本地运行成功,但在Jenkins服务器上运行失败的问题,提供了一种解决方案。通过分析Jenkins的工作目录结构,建议将上传文件放置在Jenkins工作区内的固定目录下,并强调了检查错误信息中文件名的重要性,以确保问题定位的准确性。

在自动化测试中,文件上传是一个常见的场景。然而,测试用例在本地环境运行良好,但在Jenkins持续集成环境中却失败,这往往令人困惑。本文将深入探讨这个问题,并提供有效的解决方案。

问题分析

从提供的错误信息来看,org.openqa.selenium.InvalidArgumentException: invalid argument: File not found : /var/lib/jenkins/workspace/HE_HQ_Automaton/src/test.Files/putty.exe, 明确指出 Jenkins 在指定路径下找不到文件 putty.exe。这通常意味着 Jenkins 服务器上的文件路径与本地环境不同,或者 Jenkins 没有权限访问该文件。

解决方案

  1. 确定Jenkins工作目录:

    Jenkins 在执行构建任务时,会创建一个工作目录,用于存放项目代码和相关文件。 通常,Jenkins 工作目录的路径格式为 /var/lib/jenkins/workspace/JOB_NAME,其中 JOB_NAME 是你的 Jenkins 项目名称。在本例中,根据错误信息,Jenkins的工作目录是 /var/lib/jenkins/workspace/HE_HQ_Automaton。

  2. 将上传文件放置在Jenkins工作区内:

    为了避免文件路径问题,最佳实践是将需要上传的文件放置在 Jenkins 工作目录下的一个固定目录下。例如,可以在工作目录下创建一个名为 src/test.Files 的文件夹,用于存放上传文件。

  3. 修改代码中的文件路径:

    启科PHP淘宝客系统
    启科PHP淘宝客系统

    1、请上传下载到的淘宝客系统安装包并上传到空间根目录中进行解压,解压后将网站文件移动到根目录的位置,然后访问 /install 进行安装。您也可以在本地解压,并以二进制方式将程序上传至您的网站空间。 2、同意启科网络电子商务系统安装协议进入下一步。 3、如果系统检测环境通过,则会提示输入您的数据库服务器地址(一般为本机,即127.0.0.1或者localhost)、数据库账号、数据库密码、数据库名

    下载

    在代码中,需要修改文件路径,使其指向 Jenkins 工作目录下的文件。可以使用 System.getProperty("user.dir") 获取当前工作目录,然后拼接文件路径。

    public void sendPNGFileUpload() {
        Driver.wait(2);
        String filePath = System.getProperty("user.dir") + "/src/test.Files/BUG PnUMBER CHAR.png";
        driver.findElement(chooseFileButton).sendKeys(filePath);
        Driver.wait(2);
    }

    但是,由于Jenkins运行时的user.dir可能并非你期望的Jenkins workspace目录,因此更可靠的方式是直接构建基于Jenkins workspace的绝对路径。 这可以通过Jenkins环境变量来实现。

    假设Jenkins job配置中,workspace路径为/var/lib/jenkins/workspace/HE_HQ_Automaton,则直接使用该绝对路径,或者配置一个环境变量指向该路径,然后在代码中使用该环境变量。

    public void sendPNGFileUpload() {
        Driver.wait(2);
        String jenkinsWorkspace = System.getenv("JENKINS_WORKSPACE"); // 或者直接使用 "/var/lib/jenkins/workspace/HE_HQ_Automaton"
        String filePath = jenkinsWorkspace + "/src/test.Files/BUG PnUMBER CHAR.png";
        driver.findElement(chooseFileButton).sendKeys(filePath);
        Driver.wait(2);
    }
  4. 确保Jenkins用户具有访问权限:

    确保运行 Jenkins 的用户(通常是 jenkins 用户)具有读取上传文件的权限。可以使用 chmod 命令修改文件权限。例如,chmod 755 /var/lib/jenkins/workspace/HE_HQ_Automaton/src/test.Files/BUG PnUMBER CHAR.png。

  5. 检查错误信息中的文件名:

    务必仔细检查错误信息中的文件名。错误信息显示的是 putty.exe 文件找不到,而代码片段中显示的是 BUG PnUMBER CHAR.png 文件。这表明可能在其他地方也使用了文件上传功能,并且该功能依赖于 putty.exe 文件。请检查所有文件上传相关的代码,确保所有依赖的文件都存在于 Jenkins 工作目录下。

注意事项

  • 避免使用绝对路径,尽量使用相对路径,并基于 Jenkins 工作目录构建。
  • 确保上传文件存在于 Jenkins 服务器上,并且 Jenkins 用户具有访问权限。
  • 仔细阅读错误信息,确定问题所在,避免盲目修改代码。
  • 如果使用了环境变量,请确保在 Jenkins 中正确配置了环境变量。

总结

解决文件上传测试在 Jenkins 上失败的问题,关键在于确保 Jenkins 服务器上的文件路径与代码中的路径一致,并且 Jenkins 用户具有访问权限。通过将上传文件放置在 Jenkins 工作目录下的固定目录下,并使用相对路径或环境变量,可以有效地解决这个问题。同时,仔细检查错误信息,确定问题所在,可以避免不必要的调试工作。

相关专题

更多
PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

27

2025.12.13

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号