问题标签 [test-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
380 浏览

c# - 我为基于 Selenium SpecFlow 的 Visual Studio 解决方案使用什么项目类型

我正在使用 SpecFlow、SpecFlow+ 和 Selenium WebDriver 为我们的应用程序构建一个测试自动化项目。已经浏览了一些教程,每个教程都有不同的观点。

那么任何人都可以告知在同一个 VS 2019 解决方案中与 SpecFlow 项目一起使用的最佳项目类型是什么以及与 Selenium 项目一起使用什么?

另外,我应该将主要项目作为 SpecFlow 并将添加的项目作为 Selenium(反之亦然)吗?

有没有人用我可以看看的 2 个项目完成了类似的解决方案?

0 投票
0 回答
124 浏览

selenium-webdriver - 没有测试运行器的 Selenium WebDriver?

我不确定这个问题是否会因为它太新手而被关闭,但我想我还是会试一试。

我目前正在开发一个 Selenium 自动化框架,虽然看起来构建良好,但它通过生成线程来运行它的代码。(该框架是专有的,所以我无法共享代码)

该框架不使用 JUnit 或 TestNG 之类的测试框架来运行“测试”,而是使用线程方法来运行。aka,读取数据表、实例化和执行驱动程序、报告结果等的方法是通过启动一个线程来执行的,该线程的类在运行时代码的不同位置实例化。

我担心的是:虽然它在本地运行良好,提供报告和你有什么,它不能做什么,由于它没有使用测试运行器运行,它无法通过或失败“测试”。因此,在将其放在构建管道上时,“测试”不会被执行,因为可以说没有“测试”,从而使其在 CI/CD 上失去它的汁液,就报告构建管道而言事关成败。

我的担忧是否合理/不合理?为什么?有没有解决方法?投资回报率是多少?

欢迎资源或链接,欠啤酒!!:-)

干杯,

  • 丹麦语
0 投票
1 回答
254 浏览

automated-tests - 我们可以在不使用元素定位器的情况下自动化 Web 应用程序/移动应用程序吗

这对我来说很震惊,作为提供服务的组织之一,他们通过自己的框架在不使用任何元素定位器的情况下进行自动化,并且他们承诺也支持 Web、移动 iOS 和 android……。作为一种用途,您只想定义 BDD 场景以及任何一个操作,例如选择、单击、等待……</p>

示例:我想登录并阅读电子书

作为用户,我想在访问其中一本书时登录,然后我可以阅读这本书

这里我们需要提供用户名:密码:书名'选择'动作

是否可以在不使用 Xpath、css、id、tag ......任何定位器的情况下处理测试自动化?

如果有人有任何信息,请告诉我……如果这是正确的,那么为什么我们要使用许多定位器,许多工具……?

是不是叫SAAS模型自动化?

0 投票
4 回答
110 浏览

java - 测试框架应该驻留在 Maven 构建的哪个位置 - src/test/java 或 src/main/java?

我从这个网站上以前的答案了解到,对于 Maven 构建:

  1. src/main/java将部署到生产中,而src/test/java不会。
  2. src/main/java包含主应用程序,而src/test/java将包含测试主应用程序的代码

现在我的问题是,在编写测试框架时,哪种方法更好/更差:

  1. 测试框架本身将是主要应用程序 - 因此它将驻留在src/main/java?
  2. 测试框架将仅用于测试主应用程序 - 因此将驻留在src/main/java?

不知何故陷入了正确地可视化这一点 -

  • 方法 1似乎是正确的,因为测试框架将是构建的主要目的,因此这将是主要应用程序。

    但是不知何故,我无法想象将测试框架部署到生产环境中。

  • 方法 2似乎是正确的,但是如果主要目的是编写一个测试框架,那么里面会发生什么src/main/java?对于我的测试框架应用程序,它会是空的还是不存在的?

对此的任何建议都会有所帮助。

0 投票
0 回答
21 浏览

caching - 缓存回归测试

我想测试为 RISC-V 处理器构建的缓存。我正在为缓存寻找一个开源回归测试框架。是否有任何标准的缓存测试框架?如果没有,我应该如何进行?我需要验证缓存的一致性。我需要一些自我验证或共同模拟的环境。

0 投票
0 回答
28 浏览

python - 在将 pytest v3.0.7 升级到 v6.2.4 时面临 pytest 夹具范围内的功能问题

问题:在将我的代码从 pytest v3.0.7 升级到 v6.2.4 时,我遇到了功能问题。这意味着,v6.x 中的代码行为与 v3.x 中的代码行为不同。pytest v3.x 和 v6.x 中的fixture范围不一样

此问题背后的原因:在最新的 pytest 版本中,pytest 固定装置范围的工作方式发生了变化。早些时候,在 v3.x 中,我看到函数作用域在会话作用域被允许之前被执行。但是,在 v6.x 中,会话范围严格在函数范围之前执行。参考1参考2

因此,升级 pytest 版本后,我的代码功能已经完全改变。作为一个遗留的测试框架,我不能那么容易地交换范围,因为很多插件/依赖代码会显示出意外的行为。

是否有任何解决方法可以保持执行与以前相同?所以,基本上我希望函数作用域在 v6.x 的 pytest 固定装置内的会话作用域之前执行。

例如,

使用 pytest v.3.0.7 执行上述代码时,将断言 True(测试通过)。但是,对于 pytest v6.2.4,它会抛出一个错误,因为范围为“会话”的固定装置将首先执行,然后是范围为“功能”的固定装置。现在,我想要一种解决方法或修复方法,使测试将在与 pytest v6.2.4 相同的场景中通过,并且由于前面提到的原因,我无法更改范围。

0 投票
0 回答
9 浏览

elasticsearch - 编译elasticsearch5.2.1源码出错

我在编译 ES 源代码时遇到了一些困难。

1.我从https://github.com/elastic/elasticsearch/tree/v5.2.1获得了 elasticsearch-5.2.1 源代码。2.我解压了elasticsearch-5.2.1.zip。3.我使用“gradle build”命令在elasticsearch-5.2.1的根目录下构建。4.我的gradle版本是“Gradle 3.3”,java版本是“java 1.8.0_271”。我的操作系统是ubuntu 20.04。

当我在elasticsearch-5.2.1的根目录下运行“gradle build”命令构建。结果是:</p>

''' FAILURE:构建失败,出现异常。

  • 出了什么问题:任务':test:framework:test'执行失败。

有测试失败:23 个套件,132 个测试,4 个失败,3 个被忽略(3 个假设)[种子:121BC3D9A1F658B1]

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败'''

谁能帮我解决这个问题?非常感谢

0 投票
2 回答
24 浏览

elasticsearch - Elasticsearch5.2.1源码编译报错

我在编译 ES 源代码时遇到了一些困难。

1.我从https://github.com/elastic/elasticsearch/tree/v5.2.1获得了 elasticsearch-5.2.1 源代码。
2.我解压了elasticsearch-5.2.1.zip。
3.我使用“gradle build”命令在elasticsearch-5.2.1的根目录下构建。
4.我的gradle版本是“Gradle 3.3”,java版本是“java 1.8.0_271”。我的操作系统是ubuntu 20.04。

当我在elasticsearch-5.2.1的根目录下运行“gradle build”命令构建。结果是:</p>

'''

'''

谁能帮我解决这个问题?非常感谢

0 投票
0 回答
23 浏览

go - 在詹金斯的远程服务器中找不到 go-junit-report 但在本地詹金斯它工作正常

我正在运行 golang 测试用例并通过以下命令将测试结果保存到 testreport.xml。 去测试-v ./testqa | go-junit-report > testqa/testreport.xml

其中 testqa 是我的测试文件夹,其中包含框架代码、testreport.xml 文件和测试文件。

jenkins 读取的 xml 文件并使用 go-junit-report 模块,我将这些结果显示给 jenkins UI。

所以有两种情况

  1. 在我的本地工作区上层命令中运行的 Jenkins 在本地工作区上运行的本地 Jenkins 中运行良好。它完美地填充了该 xml 文件并正确显示结果。

  2. 我还需要将 go-junit-report 配置为项目远程服务器。项目工作区,我这里使用的是 Github url。

如果我运行此命令 >> go test -v ./testqa,测试在公司的 jenkin 服务器中运行良好

但是当我使用这个命令进行测试报告时>>> go test -v ./testqa | go-junit-report > testqa/testreport.xml

我得到的错误是

/tmp/jenkins9406057064778860048.sh: 5: go-junit-report: 未找到