【问题标题】:Orchestrating Non-JavaScript Backend from Protractor Test从量角器测试编排非 JavaScript 后端
【发布时间】:2016-01-24 20:24:13
【问题描述】:

我正在编写一个具有 LAMP 后端的应用程序,该后端提供 RESTful API。此 API 由 AngularJS 前端使用。

我对 API/GUI 进行了单独的单元和集成测试。现在,我正在扩大我的测试范围,以包含完整的从前到后的测试套件。

我一直在玩Protractor,它对于我的从前到后测试的基于浏览器的输入非常有用。 但是,我正在努力了解如何将其与 PHP 后端的编排集成。


在 PHP 集成测试中,我有一组实用程序类,它们使用预先确定的 Universe 填充系统(即数据库)。例如;有一个预先创建的名为“Bob”的用户和一个名为“Alice”的管理员。

在每个集成测试用例之间,整个宇宙都被重新设置为这个基本状态,因此在测试中与 Bob 和 Alice 的任何交互都被重新设置。

这是我想从 Protractor 管理的编排的一个示例。但是,我看不到与构建测试宇宙的 PHP 代码集成的简单模式。

在世界初始人口之后,我希望能够执行其他编排任务以使系统进入所需的目标状态;例如锁定 Bob 的用户帐户。

不想直接从量角器代码访问 MySQL 数据库,如何重用我的 PHP 逻辑并从量角器调用业务逻辑?

我可以提供 RESTful 编排 URL。但这似乎很危险,因为一旦发布到生产环境中就会带来严重的风险。


关于其他 StackOverflow 问题(例如 this one)有许多建议使用 Mocks。这些似乎完全没有标记。给定的量角器是为从前到后的测试而设计的。


【问题讨论】:

  • 是否可以通过命令行与 PHP 代码交互?我的意思基本上是在测试之前从 Protractor (node.js) 运行一个 PHP 脚本,然后运行测试本身,运行另一个 PHP 脚本以删除所有测试数据。

标签: angularjs testing protractor


【解决方案1】:

业务逻辑

我们已经做到了,但方式不同。我们在 API 服务代码中编写了该业务逻辑,它将检查您尝试重置的环境类型。如果您的目标环境是您的本地代码库或测试环境,那么它将提供您的 Rest /reset api。

if(environment === qa || environment === local) {
// Allow reset service
} 
else {
// No reset service
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多