【问题标题】:UI Testing (casperjs) with good known status of data (mysql database)具有众所周知的数据状态的 UI 测试(casperjs)(mysql 数据库)
【发布时间】:2017-12-04 10:18:35
【问题描述】:

我正在使用 CasperJS 进行自动化 UI 测试。我已经使用一些随机数据(一种 POC)完成了基本的 UI 测试和验证。我已经使用 bash 脚本设置了这个自动化,该脚本启动 Web 服务器,从 SQL 文件加载 MySQL 数据,启动 CasperJS 测试用例,停止 Web 服务器,检查日志文件。

现在,我想从存储在 MySQL 中的一些众所周知的数据状态开始测试。这样我就可以用一些已知的数据库状态来测试带有详细字段信息的列表数据和表单数据。此刻我应该如何知道数据库中数据的状态?

1) 我应该使用包含所有数据状态和详细信息的预填充 JSON 转储文件吗?

2) 我应该使用网络服务 API 吗? (Web 服务 API 用于显示/保存/删除网页中的数据)

让我们举个例子。我在Users 表中有 5 个用户。现在,当我打开主页时,它会显示 5 个用户并提供一些粗略的详细信息。当我单击用户列表中的任何记录时,它会显示一个包含该用户详细信息的表单。该网页正在请求 Web 应用程序在 user_id 的帮助下获取有关用户的详细信息,以在表单中显示详细的用户数据。现在我想检查该表单中的所有数据是否正确填充。那么在下一步中,我应该从 JSON 转储文件中读取内容还是应该使用 Web 服务 API(就像网页一样),首选的方式是什么。

在网上搜索这个问题,我也找到了MYSQL HTTP plugin。我也应该考虑这个吗?使用起来有多安全? (我从文档中知道该插件不适用于生产,仅用于测试目的。:))

【问题讨论】:

    标签: mysql json bash casperjs ui-automation


    【解决方案1】:

    对于这种情况下的主要问题,我会将数据库连接字符串更改为您的testing database(这是一个克隆)。

    在您的情况下,使用您的 bash 脚本在运行测试之前自动更改连接字符串(文件副本?)。完成后改回来。

    您的测试数据库是您的开发/实时数据库的直接克隆,但仅包含您想要的测试数据。缺点是您需要使架构与 DEV/LIVE 保持同步。

    另外需要考虑的一点是您的测试是否改变了状态(发布)。如果是这样,您的测试数据可能不同步。解决此问题的一种方法是删除外键、截断数据并加载到转储文件中。

    HTH

    【讨论】:

    • 是的,我正在使用测试数据库。我可以做一件事,我可以将数据转储到测试数据库的 json 文件中,并且在开始 UI 测试之前,我可以将该 json 转储文件加载到内存中,以便测试用例可以在需要验证时访问数据。
    • 当我将数据发布到服务器时你是对的,那么我的测试数据可能不同步,但目前我并不担心这一点,因为 API 正在给出响应状态成功或失败!
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    相关资源
    最近更新 更多