【问题标题】:Bit by bit comparison of using Java or Python for unit testing frameworks and Selenium [closed]使用 Java 或 Python 进行单元测试框架和 Selenium 的一点点比较 [关闭]
【发布时间】:2014-08-20 09:31:59
【问题描述】:

目前,我们正在使用 selenium webdriver 和合适的单元测试框架最终确定 Java 中的哪种语言,Python 应该用于自动化。我在使用 Java 时使用了 Junit、TestNG 和 webdriver,并且之前设计的框架没有大惊小怪。我是 python 新手,虽然我遇到了 pyhton 的单元测试框架,如 unittest、pyunit、nose 等,但我怀疑它们是否会像 testNG 或 Java 一样成功。与 selenium webdriver 一起使用时,我想逐点分析如下:

1)我已经读到,由于 Python 是一种解释性语言,因此它的执行速度较慢,所以假设我必须运行 1000 个测试用例,在 Java 中运行大约需要 6 个小时,那么 python 会花费更长的时间吗?测试用例像 8 小时?

2) Python 单元测试框架能否像 testNG 这样的 Java 单元测试框架在术语或分组测试、并行执行、跳过测试方面一样灵活。等等

3) 我想到的还有一点是,带有 selenium webdriver 的 Python 并没有像带有 webdriver 的 Java 那样庞大或有学识的社区,比如说如果我遇到问题,我更有可能找到一个与 python 相比,Java 的答案?

4) 与第 3 点有点相关,依赖工具、插件甚至 webderiver 的 python 绑定作为持续维护良好的绑定是否安全?

5) 我在使用 python 的单元测试框架时看到的一个主要缺点是缺少样板代码或库来提供很好的说明性 HTML 报告,最好是带有饼图、条形图和时间线的历史报告,就像我们在使用 Java 之类的 Allure 时所拥有的那样, TestNG 的默认报告,reportNG 或 Junit 报告在 ANT 的帮助下如下所示

魅力报告:

Junit 历史报告:

另外我想强调一个事实,如果有一种方法可以让一个人在 java 中编写框架,并根据 webdriver 中的应用程序制作库或实用程序,这些应用程序可以很容易地被调用或与 python 代码集成或模块?这实际上会为我们解决问题,因为客户端将能够使用我们用 Java 编写的代码并使用相同的代码或从他们的 python 模块中调用它?

【问题讨论】:

  • 鉴于您在 Python 的正面栏中似乎没有任何内容,您为什么不直接使用 Java?
  • 好吧,如果我有我的方式,我会使用 Java Hands down 顺便说一句,你介意在上下文中分享任何积极的东西,或者 python 有充分的理由使用 python 吗?正如客户似乎在建议 python
  • @gnat 有趣的一点,谢谢。

标签: java python unit-testing selenium junit


【解决方案1】:

我认为这个决定并不像你想象的那么重要。你可以去任何一种方式,你觉得更舒服。这就是我认为的原因:

1) 如果您的测试运行 6 或 8 小时,那么您的测试速度会很慢。让他们变慢的不是语言,而是他们的所作所为。 java 和 python 都不会神奇地使测试运行得更快或更慢(在这个规模上)。 如果您选择的语言会对性能产生影响,我怀疑它会像 +- 1 分钟...

2) 抱歉,我无法回答。我不知道pythons测试框架。 (但答案的其余部分并不依赖于此)

3) 关于WebDriver,你知道它是如何工作的吗?它是网络浏览器中的扩展。您通过代码中的 JSON 协议与它对话。您的测试代码只是一个客户端,生成 JSON 命令并将其发送到浏览器。 webdriver 核心并不关心 JSON 是由 python 还是 java 生成的。 唯一可能出错的是客户端代码,我怀疑它们既稳定又好用。

4) 见答案 3。这里只是切换的客户端部分,但是是的,我认为它维护得很好。

5) 这不是容器的工作吗(例如 Jenkins / Hudson)。所有测试框架所做的通常是生成失败/通过测试的报告。最有可能采用 ANT/JUnit XML 格式。详情请参阅this question。不过,这可能取决于您用来生成图表的插件。但不在生成结果报告的测试框架上。

如果您对 Java 感觉更舒服,请使用它。支持 python 的是更短的语法。您可以使用更少的样板代码编写更短的测试。但这不会让我仅仅为了更短的(在源代码的意义上)测试而学习 python。

【讨论】:

    【解决方案2】:

    不要相信互联网上的随机人会做出关键的业务决策!

    至于 2) 鼻子有很好的测试分组和并行执行。

    【讨论】:

      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 2023-03-28
      • 2018-03-29
      相关资源
      最近更新 更多