mysql - UI 测试 (casperjs) 具有良好的已知数据状态(mysql 数据库)

标签 mysql json bash casperjs ui-automation

我正在使用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 。我也应该考虑这个吗?使用安全性如何? (我从文档中知道这个插件不适用于生产,它仅用于测试目的。:))

最佳答案

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

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

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

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

HTH

关于mysql - UI 测试 (casperjs) 具有良好的已知数据状态(mysql 数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47631067/

相关文章:

bash - 如何在 Bash 中检测 OpenSSL 的失败

linux - 计算多个文件中的重复项

mysql - 为什么 ActiveRecord 会截断此时间戳精度?

javascript - 使用mysql数据创建条形图

python - 从 Python 3.4 连接到远程 MySQL 数据库

python - 如何对json文件进行切片,只提取部分字段

javascript - 在 JavaScript 中使用 PHP 的值

linux - 查看 PS 命令的完整输出

mysql - ENCODE() 和 DECODE() 是处理 MySQL 中应用程序密码字段的 "best"方法吗?

mysql - SQL - 获取两个用户的名字