testing - 具有多个用户的验收测试页面

标签 testing integration-testing

我有一种情况需要测试多个用户访问和更新特定网页。它是一个拍卖页面,我需要测试最多三个用户对该项目的出价,断言浏览器显示正确的响应。

例如:

  • 用户 1 登录
  • 用户2登录
  • 用户 3 登录
  • 用户 1 出价 - 获胜
  • 用户 2 出价 - 获胜 - 用户 1 出价过高并收到通知
  • 用户 3 出价但不够
  • 用户 3 的出价再次获胜 - 用户 1 和用户 2 收到出价通知

目前我有一组脚本可以按顺序执行这些步骤,每次执行出价时都会记录每个用户的登录和退出。我正在使用 PHP 和 Codeception 以及 PhantomJS 来执行此操作,但测试需要几分钟运行。

我正在寻求建议

  1. 测试这个的最佳方法,以及
  2. 可以实现并行测试用户的工具。

最佳答案

要事第一。 UI 测试本质上很慢。我不认为你可以期望沿着这条路在性能上有显着的提高。

当然,您可以在速度更快、互联网连接更好的机器上运行测试,但这只会让您走这么远。

话虽如此,一种性能改进是并行运行您的界面测试。这意味着要么在你机器上的多个浏览器实例中(但同样,你的机器资源有物理限制),要么在中央编排器运行测试的多个节点中(例如看看 Selenium Grid)。

另一方面,在我看来,解决此问题的最佳方法是完全跳过 UI 测试并将所有您尝试在服务器端代码中测试的业务逻辑移动等级。

这样一来,您就可以专注于编写测试业务逻辑的测试 - 我想这是最重要的(我希望您的利益相关者也有同样的看法 - 这是关键)。

有关此方法的更多详细信息,我建议您查看有关 Clean Architecture 的演讲。 .一个小时的时间,但是很值得!

关于testing - 具有多个用户的验收测试页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42228221/

相关文章:

带有 Rails JSON API 的 Javascript 客户端框架 - 如何进行集成测试?

java - Google App Engine 数据存储集成测试

ruby-on-rails - 替代 Cucumber 的集成测试工具

python - pypy 解释器无法识别 nosetests 而 pypy3 可以

php - 如何在 PHP 中测试注册表模式或单例?

php - 单元测试 Controller Phalcon

c# - 流利的断言 Should().Should().BeEquivalentTo 忽略被排除的成员

testing - 在框架内简化 A-B 测试/Beta 测试支持

c++ - 浮点精度在测试变量是否达到界限时的影响

maven - 运行 selenium maven 插件时 firefox 配置文件为 "parent.lock"