是否可以在Python-Selenium测试中进行顺序测试?



编辑问题: 我想我之前的问题措辞不正确,我实际上想摆脱"单元测试"并创建自动化的模块化系统测试,这些测试相互构建以测试整个应用程序。 许多部分依赖于前几页,如果不先在前几页上执行必要的步骤,就无法访问后续页面。

例如(很抱歉我无法提供实际代码),我想登录应用程序,然后插入一些数据,然后显示数据已成功发送。 它比这更复杂,但是,我想制作 Web 驱动程序部分,"模块 1.x"。然后是登录部分,"模块 2.x"。 数据部分,"模块 3.x"。 最后,成功部分,"模块 4.x"。 我希望实现这一点,以便我最终可以说,"好吧,对于这个测试,我需要它稍微复杂一点,所以让我们做,IE(即。模块 1.4)、登录(即模块2.1),添加名称(即模块3.1),添加地址(即。模块 3.2),添加一个电话号码(即模块 3.3),然后检查是否成功(即模块 4.1)。 所以,我需要把所有这些串在一起。 (这是非常简化的,只是我需要发生的事情的一个例子。 即使在单元测试的情况下,我也无法简单地跳到页面来检查元素是否存在,而无需完成所需的先决条件信息。我在创建的冗长测试中遇到的问题是,当某些内容发生变化时,每个测试都需要多次编辑,然后乘以驱动程序的数量,在这种情况下是 Chrome、IE、Edge 和 Firefox(系数 4)。 也许我的方法完全错误,但这对我来说是新的领域,所以任何建议都非常感谢。再次感谢您的帮助!

上一个问题: 我已经找到了许多创建单元测试的答案,但是,我找不到有关如何使所述测试按顺序进行的任何建议。

我真的很想做模块化测试,当重复执行相同的操作时可以重用。 我已经尝试了各种方法来实现这一目标,但我没有成功。 目前,我有几个冗长的测试,在每个测试中重用大部分相同的代码,但我必须使用任何新的更改单独调整每个测试。

因此,我真的希望.py文件只包含我尝试完成的特定任务的几行代码,同时重用已经打开的同一浏览器实例以及测试的前一部分停止的页面上。 希望通过"调用"较小/模块化的测试文件来实现这一点。

任何帮助和/或示例将不胜感激。 感谢您在这个问题上的时间和帮助。

恭敬地

比利亚梅尔

你真的不希望你的测试是连续的。这违反了单元测试的核心规则之一,它们应该能够以任何顺序运行。

您尚未发布任何代码,因此很难知道该建议什么,但是如果您不使用页面对象模型,我建议您开始。网络上有很多资源可以做到这一点,但基础知识是每个页面或小部件创建一个类。该类将保存与该页面相关的所有代码和定位器。这将有助于您正在寻找的模块化方面,因为在脚本中,您只需实例化页面对象,然后使用 API。与页面交互的详细信息、逻辑等都存在于页面对象中,通过它提供的 API 公开。

更改/更新很容易。如果登录页面发生更改,则编辑登录页面的页面对象,然后完成操作。如果页面对象已正确实现,并且对页面的更改不严重,则很多时候根本不需要更改脚本。

一个简单的示例是登录页面。在该页面的登录类中,您将有一个采用用户名和密码的login()方法。login()方法将处理在适当的字段中输入用户名和密码,然后单击登录按钮等。

最新更新