java - Selenium Web 自动化 java 框架

标签 java selenium selenium-webdriver qa

概述:
该框架最初是为测试 Web 应用程序而构建的。为简单起见,我们会说需要一个

  • Suite.xls ,
  • 至少一张带有测试步骤的电子表格,
  • 一个 keywords.java带功能,
  • or.properties包含 XPath 的文件。

  • 以下是这四个项目相互引用的位置以及它们包含的内容:
  • C:\WebApplicationFooTest\src\com\selenium\xls\Suite.xlsSuite.xls包含:
  • FooTest1 ...运行模式=Y
  • FooTest2 ...运行模式=Y
  • C:\WebApplicationFooTest\src\com\selenium\xls\1.Test1.xls .....基于运行测试步骤

    一种。关键词 B. xpaths C.数据
    C:\WebApplicationFooTest\src\com\selenium\xls\2.Test2.xls .....基于运行测试步骤

    一种。关键词 B. xpaths C.数据
  • C:\WebApplicationFooTest\src\com\selenium\test\Keywords.javaclickButton函数, verifyText功能
  • C:\WebApplicationFooTest\src\com\selenium\config\or.properties
    XPath 表达式,即- save=//input[@value='Save']
  • C:\WebApplicationFooTest文件夹被检入存储库。它可以被 check out 并在其他人的机器上运行。

    设想:
    接下来,我们决定要开始自动化我们的新 Web 应用程序 Bar。那么让我们来看看我们的四个必需品。 1. Suite.xls 这次会有所不同,即- 1.BarTest1 ... runmode=Y。 2. 带有测试步骤的电子表格将被称为 1.BarTest1。 3. Keywords.java 中的大部分内容可以重复使用(即 - clickButton 不会因网络应用程序而异)。 4. 必须将 Bar 网页上存在的新 XPath 表达式添加到 or.properties使用不同的变量。乔结账WebApplicationFooTest从存储库中取出,将其用作基础,并自动执行 WebApplication酒吧。

    问题:
  • Joe 还希望在存储库中实现自动化,以便其他团队成员可以使用他拥有的东西。如果乔签到C:\WebApplicationBarTest ,存储库将在两个不同的地方有很多通用代码,WebApplicationFooTest , WebApplicationBarTest .如果在 Keywords.java 中添加了新功能,它必须在两个不同的地方更新。但是,如果他将更改合并到现有存储库文件夹中,WebApplicationFooTest ,然后他的Suite.xls for Bar 测试将覆盖 Foo 测试 Suite.xls !现在,当 Jane(非技术人员) checkout 运行时,它也不会运行
    注:Suite.xls指定将运行或不运行的电子表格。 src\com\selenium\xls 中的每个 Excel 表必须在 Suite.xls 中列出.如果有多余的,自动化将不会运行。
  • 团队成员 Joe 想要在 Bar wep 应用程序中自动化一些东西,并且有一个保存按钮,所以他在 or.properties 中创建了一个新条目,即 - save=//input[@value='Okay'] .因为他没有环顾or.properties 看变量save已经使用了,有两个变量叫做 save ;他添加的一个和现有的一个,即- save=//input[@value='Save'] . Joe 提交了此更改,当 Jane 运行自动化时,它未通过 Foo web 应用程序测试,因为他的 save现在坏了。

  • 可能的解决方案:
  • 在存储库的 src\com\selenium\xls 中文件夹,添加一个名为 MasterList 的文件夹.所有电子表格都在此处 checkin ;它们是用于 Foo 测试,还是 Bar 测试等。这取决于 checkout 的人使用自动化从该文件夹中复制出他们想要的内容,并放入 src\com\selenium\xls。并创建一个 Suite.xls这需要填写他们想要运行的电子表格。
  • 通过培训克服这一点。

  • 什么是 SOP 和/或您对制作这样一个框架的建议?

    泰!

    最佳答案

    每个测试套件都应该构建为自己的项目(在 Eclipse 意义上)。有一个包含 Java 代码的通用项目。

    有一个“主”测试套件,用于应用程序测试。 Joe 的测试套件位于一个单独的项目中。
    Suite.xls需要特定于测试套件,因此每个套件会有一个。

    应通过相对于工作空间的路径来引用各个电子表格。这允许您在主测试套件和各个测试套件之间共享电子表格。

    关于java - Selenium Web 自动化 java 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919965/

    相关文章:

    java - 应该在 UI 线程中调用 findviewbyid 吗?

    java - 将Mockito与IntelliJ的Java一起使用时发生IllegalStateException

    java - 每次都检查数组还是插入数据库哪个更快?

    java - 当我的测试失败或发生异常时,我需要始终注销我的应用程序。我应该怎么做?

    java - 如何将字符串 arraylist 转换为 double 以便 arraylist 可以返回排序值

    java - Selenium 不等待页面加载

    python - 使用 selenium 8 进行屏幕抓取

    java - 如何将多个语句作为一个查询执行?

    ruby-on-rails - Firefox 是默认的,但仍然得到 WebDriverError : unable to connect to chromedriver 127. 0.0.1:9515

    java - 无法找到元素(Selenium、Java)