如何使用 TestNG 框架和 Jenkins 运行 Selenium 测试

2023-11-30

我想使用 Jenkins 运行在 TestNG 框架中编写的 Selenium 测试。

jenkins job(Freestyle项目)中配置的命令:

java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml

注:对于-cp argument,给定目录路径testng jar, test classes, and selenium jar

当我运行作业时(Build Now选项),它在 Selenium 的创建会话活动中受到打击并给出错误。

Note:

运行相同的命令成功地当从命令行.

控制台输出的错误日志:(詹金斯)

Started by user Naveen
Building in workspace C:\Program Files (x86)\Jenkins\workspace\TestNG Example
[TestNG Example] $ cmd /c call C:\Windows\TEMP\hudson2261889395366550414.bat

C:\Program Files (x86)\Jenkins\workspace\TestNG Example>java -cp J:\taf\testng\*;J:\taf\workspace\TestNGExamples\bin;J:\automation\* org.testng.TestNG J:\taf\workspace\TestNGExamples\testng1.xml 
[TestNG] Running:
  J:\taf\workspace\TestNGExamples\testng1.xml

1481801204206   geckodriver INFO    Listening on 127.0.0.1:1387
Dec 15, 2016 4:56:44 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
1481801204827   mozprofile::profile INFO    Using profile path C:\Windows\TEMP\rust_mozprofile.KDz9DWYpWQAM
1481801204829   geckodriver::marionette INFO    Starting browser C:\Program Files\Mozilla Firefox\firefox.exe
1481801204831   geckodriver::marionette INFO    Connecting to Marionette on localhost:7795
1481801206090   Marionette  INFO    Listening on port 7795

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

JavaScript error: resource://app/modules/ContentCrashHandlers.jsm, line 75: TypeError: browser.permanentKey is not a non-null object

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

Dec 15, 2016 4:56:47 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C

###!!! [Parent][MessageChannel] Error: (msgtype=0x2E007D,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

以下是测试类:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

    public class SeleniumTests {

        @Test
        public void test1(){
            WebDriver driver = new FirefoxDriver();
            driver.get("http://www.google.co.in");
            driver.quit();
        }

    }

以下是testng1.xml:

<?xml version="1.0" encoding="UTF-8"?>

<suite name="Default suite">
  <test verbose="2" name="Default test">
    <classes>
      <class name="SeleniumTests"/>
    </classes>
  </test> <!-- Default test -->
</suite> <!-- Default suite -->

环境详情:

  1. Jenkins - 2.19.4(作为 Windows 服务)
  2. Java-1.8
  3. 测试NG - 6.8.5
  4. 硒 - 3.0.1
  5. 火狐 - 51
  6. 壁虎驱动程序 - 0.11.1
  7. 操作系统 - Windows 7 - 64 位

这不是 TestNG 或 Selenium 问题。当 Jenkins 作为 Windows 服务安装时,有时会出现此错误。在 Tomcat 或 GlassFish 等 servlet 容器中安装 Jenkins 应该会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 TestNG 框架和 Jenkins 运行 Selenium 测试 的相关文章

  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Jenkins Slave 自我注册

    我正在创建一个 Jenkins 主 从集群 但我无法找到一种方法让新的从服务器自动向主服务器注册 我当前的设置是运行一些 Terraform 脚本来创建主服务器和 5 个从服务器 然后我必须登录主节点并管理 Jenkins gt 管理节点
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • 无效的选择器:使用 Selenium 时不允许出现复合类名错误

    我正在尝试通过 Web Whatsapp 打印聊天中的一条消息 我可以通过 控制台 选项卡中的 Javascript 来完成此操作 我就是这样做的 recived msg document getElementsByClassName XE
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • Java 每 n 行添加换行符

    String names new String 18 names 0 James Raider names 1 Calm Hain names 2 Ewds Ashby names 3 Gedge Taylor names 4 Hay Fi
  • Auth::attempt($credentials) 始终返回 false

    您好 我是 Laravel 新手 我正在尝试编写登录表单的功能 代码如下 这就是我创建新用户的方式 效果很好 public function action newuser email Input get email password Inp
  • 为什么这些不同的编码不允许我正确显示葡萄牙语?

    我正在做一些涉及葡萄牙语文本的文本挖掘 我的一些自定义文本挖掘函数中还包含其他特殊字符 我不是这个话题的专家 当我的很多字符开始显示不正确时 我认为我需要更改文件编码 我试过 ISO 8858 1 ISO 8858 7 UTF 8 WIND
  • 从 python 代码创建适用于 Windows 的独立可执行文件

    我有一个 python 代码 它使用 pygkt gtk ctypes os 和其他一些模块 我使用 pyinstaller 创建了代码的独立执行程序 在ubuntu上运行得很好 现在我想为Windows平台创建另一个独立的执行程序 我使用
  • Android 改造 POST ArrayList

    正在尝试发送List
  • 从 Kafka 读取时使用 KeyBy 与 reinterpretAsKeyedStream()

    我有一个简单的 Flink 流处理应用程序 Flink 版本 1 13 Flink 应用程序从 Kakfa 读取数据 对记录进行状态处理 然后将结果写回 Kafka 阅读完 Kafka 主题后 我选择使用reinterpretAsKeyed
  • 通过分组变量折叠列(以基数为单位)

    我有一个文本变量和一个分组变量 我想按因子将文本变量折叠为每行一个字符串 合并 所以只要群栏里说m我想将文本分组在一起等等 我在之前和之后提供了一个示例数据集 我正在为一个包编写此内容 到目前为止已经避免了对其他包的所有依赖 除了wordc
  • 2.7.4 上的 Python / 和 // 运算符

    我是Python新手 我开始学习基础知识 我是一名 C 人员 所以 运算符是新的东西 根据我正在读的一本书 gt gt 4 2 2 0 gt gt 2 4 0 5 gt gt 5 4 2 gt gt 2 4 0 问题是当我写的时候5 4当我
  • 修改内存区域 - 返回 0xCC VC++

    我正在修改 dll 中编译的可执行代码的某些部分 但是我正在修改的整个段中固定地址处的单个字节无法更改 甚至无法读取 代码很简单 SEGMENT DATA segInfo getSegmentInfo mHandle segmentName
  • 如何从 Angular mat-select 获取以前的和新的值?

    你好 我使用的是 Angular 6 和 agular 材料 并且我有一个字符串数组 我将其显示在垫选择表单字段中 如果用户选择一个元素 然后选择另一个元素 我需要跟踪前一个值是什么以及新值是什么 到目前为止 我已经能够使用 event v
  • 使用 XSLT 转换在 XML 中创建 xmlns 属性

    我尝试使用 JDK Transformer Oracle XML v2 Parser 或 JAXP 在 XSLT 转换期间将 xmlns 属性添加到结果 XML 并使用参数传递的值 但它始终默认为http www w3 org 2000 x
  • 如何使文本与图标字体垂直对齐?

    我有一个非常基本的 HTML 它混合了纯文本和图标字体 问题在于图标的渲染高度与文本的高度不完全相同 div class ui menu a href t class item i class large home basic icon i
  • 创建简单的 URL(.htaccess - mod_rewrite)

    我的导航有这个结构index php v page 我希望将其转换为 www domain com page 使用 mod rewrite 对此有什么想法吗 我读了一些图和例子 但无法让它正常工作 这里有一些例子 RewriteEngine
  • 如何在 Ionic 中制作开/关按钮

    我需要在 Ionic 中放置一个按钮 该按钮在按下后保持激活状态 并且仅在再次按下后才停用 有一个类似的问题 但它仅适用于图标按钮 如何添加具有离子开 离子关功能的导航栏按钮 EDIT 我无法使用切换按钮 它需要是一个常规外观的按钮 在本例
  • 如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)?

    我正在尝试遵循网格网格 插值的 MATLAB 示例 示例代码已找到HERE 在该网站上 我正在查看以下示例 示例 在表面上显示不均匀数据 Now I would like to produce a similar plot in Pytho
  • 带闭包的 python 计数器

    我正在尝试用 python 构建一个具有闭包属性的计数器 以下代码有效 def generate counter CNT 0 def add one CNT 0 CNT 0 1 return CNT 0 return add one 但是
  • PHP-从字符串中获取特定单词

    如果我有一个像这样的字符串 myString input name something 我怎样才能得到name得到回应 每个字符串看起来都是这样 除了名称和其他内容可能不同 所以你唯一知道的是 输入后开始 它用正斜杠分隔 gt strArr
  • std::unique_ptr 作为目标 c 中的 @property

    如何在 Objective C 类的接口部分定义 std unique ptr 的 property property std unique ptr
  • 将对象推入数组无法按预期工作

    我的目标是创建一个像这样的数组 str a number 1 str a number 2 str b number 1 str b number 2 所以我写了这个javascript abc a b num 1 2 arr a for
  • 如何使用 TestNG 框架和 Jenkins 运行 Selenium 测试

    我想使用 Jenkins 运行在 TestNG 框架中编写的 Selenium 测试 jenkins job Freestyle项目 中配置的命令 java cp J taf testng J taf workspace TestNGExa