问题标签 [system-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何测试 Flask 应用程序是否正确处理中断的上传?
我正在开发一个 API,当用户上传文件时,它会即时处理该文件以从中提取一些数据。该文件可能非常大(最大 5 GB)并且不会保留在服务器上。
我有一堆使用Flask 提供的通用测试工具的系统测试。我也知道如何让测试上传文件。
然而,有一个案例我没有被系统测试覆盖。如果用户开始上传文件,然后在中间断开连接,而服务器正忙于从它已经收到的数据中提取数据怎么办?
我curl
通过启动一个大文件并在中间终止客户端来玩。API 的行为似乎符合我的预期。但我更喜欢完全自动化的方法。
我怎样才能做到这一点?Flask 或 Werkzeug 中有什么东西可以让我进行这样的测试吗?如果没有,什么是可行的方法?
ruby-on-rails - 我的 Ruby-on-Rails 应用程序中没有命令“rails test”
我最近加入了一个Ruby-on-Rails
应用程序团队,我尝试审核测试。没有测试,所以我决定在应用程序中实现它们。
在查看了那里的内容后,我发现没有运行可用测试的命令。我运行了以下命令:
在输出中,没有诸如rails test
,之类的命令rails test:system
。令人惊讶的是,我可以rails test
成功运行该命令。但是该命令rails test:system --trace
失败并显示以下输出:
我尝试在新创建的应用程序中运行该命令,并且可以看到可用的命令rails test
和rails test:system
.
知道命令rails test:system
失败的原因吗?谢谢。
红宝石版本:2.3.3
导轨版本:5.2.0
编辑:
我在用着MiniTest
ruby-on-rails - 在 Rails 5.2 中,如何配置我的系统测试以使用 selenium 远程服务器?
我当前的开发设置是使用带有 WSL(Linux 的 Windows 子系统)和 Rails 5.2 应用程序的 Windows 10。几天来我一直在尝试执行我的系统测试,我相信我发现使用 WSL 做到这一点的唯一方法是使用在 Windows 10 上运行的远程服务器。我在这里遵循了本指南,但我仍然无法让它工作。我猜我的application_system_test_case.rb
文件不正确,正在寻找可能帮助我更正它的人。
目前,在尝试运行系统测试时,出现以下错误。
错误:
c# - 系统测试 - 如何在不实际保存数据的情况下测试数据库
我目前使用 using (TransactionScope scope = new TransactionScope()) 进行 c# 测试数据库插入,因此它实际上并没有保存到数据库中进行单元测试。但是对于我目前在不同服务器上测试的系统测试,以测试不同场景的状态代码。每次我运行测试时,它实际上都是将数据保存到数据库中,下次我运行测试时它失败了,因为它是重复记录。我尝试使用事务范围,但似乎不起作用。请帮忙。
ruby-on-rails-4 - 使用 Redis 缓存对 Rails 工作者进行功能测试的最佳实践是什么?
在我们应用程序的 config/environments/development.rb 我们有
在 config/environments/test.rb 中:
我们在应用程序中使用了一些后台进程方法,例如:
当这在测试中遇到时,如果我没有主动让 Redis 在后台运行(这似乎很难安排并且在我们的 CI 环境中设置可能有问题),我会收到错误
Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)
目前我将通过模拟/测试 Deliver_later 消息来解决这个问题,但我怀疑这不是一个很好的功能测试策略,因为它显然不是用户将要做的事情。有更好的方法吗?
java - 如果可以处理 100 个连接,如何测试分布式 P2P 游戏?
对于学校的一个大型项目,我们制作了著名啤酒游戏的 P2P 变体。GUI 内置在 JavaFX 中。
我必须研究如何测试质量属性场景,如下所示:
100 名玩家可以连接到游戏并进行游戏。
通过 GUI 中的输入连接到游戏,玩家需要在其中输入主机(游戏领导者)的 IP 地址(如果它通过 WAN,则带有端口)。我们正在实施 RAFT 作为状态共识算法。
我所做的第一步是研究创建 100 个客户端/计算机的最佳方法,但你想怎么称呼它。我很快得出结论,Docker 是唯一可以同时运行 100 个容器的软件。我现在真正的问题是如何在容器化环境中测试应用程序。
我考虑了一下,测试在每个容器上玩游戏的流程的唯一真正方法是使用某种 UI 为每个客户端遍历 UI 元素以及其他设置(每个客户端需要使用不同的用户名加入游戏)像TestFX这样的测试框架。
我找到了一个可以让您测试 UI 的框架,但它需要一个具有图形界面的主机操作系统才能运行(或者至少,这是我基于互联网上的简短搜索得出的假设)。
有没有办法在 IntellJ 本身中做到这一点。使用游戏创建 100 个容器,每个容器都有一个唯一的 IP 地址,以便它们可以连接到游戏主机。
编辑@Karol Dowbecki
我们通信的方式是每 100 毫秒通过 TCP/IP 使用 UPnP 发送序列化的 AppendEntries(heartbeats),其中包含必须提交的更改(如果没有发生任何事情,则 appendentry 没有 logentries)。因此,如果玩家执行操作,它会向当时的领导者(游戏领导者/主机)发送一个 AppendEntry,然后将其转发回所有其他节点并等待大多数节点将其发送回来(两阶段commit),然后将其添加到每个玩家的登录列表(游戏的所有数据)中。如果有新玩家加入游戏,该玩家只需 1 个心跳就收到该游戏存在的所有 logEntries,这是一个巨大的序列化 json 对象,之后它从下往上重新计算步骤(logEntries)直到最后一个,即加入游戏的玩家。
那么您的建议是捕获这些通过网络传输的序列化附加条目,将它们反序列化并将其与预期结果进行比较?如果我必须扫描每个 AppendEntry 将非常困难,因为每个客户端每秒发送 10 个给领导者(如果客户端是玩家)和 10 个给所有节点(如果客户端是领导者/主机) .
AppendEntries 也来回走动。每次玩家加入 LogIndex(LogEntries 的索引,基本上是发生了多少游戏状态变化的索引)都会增加 1,最终定义了游戏状态发生了多少变化。所以不是我来回发送静态信息。它随着每个加入的玩家而变化。同样,当玩家“断开连接”时,这会再次影响 LogIndex。我必须能够跟踪 100 人加入游戏并且仍然在那里的事实。
jenkins - 如何配置 Jenkins 以并行运行我的测试用例?
我正在使用 Jenkins 构建具有多个从节点的测试系统。我有多个测试用例,每个测试用例的运行时间都超过 15 分钟。
我想以这样一种方式制作系统,当我开始测试时,Jenkins 在一个免费的节点中运行每个测试用例,最后收集和总结测试结果。
我已经打开了一个 Jenkins 作业,它是一般的测试用例作业,它是参数化的,其中参数是“测试名称”。但我看到詹金斯正在按顺序执行这些工作。
如何配置 Jenkins 以并行运行相同作业(使用不同参数)的构建?
automation - Opereto 可以安装在任何云原生环境中吗?
我看到可以使用 docker-compose 将 Opereto 安装在单个节点上。但是,我想通过在 Kubernetes 上安装 Opereto 来扩展。是否也支持?
谢谢
c# - 在.net中获取函数返回值“运行中”?
我正在尝试为没有接口且大多数功能是私有的旧代码库创建系统测试。应用程序从另一个系统获取数据,将其转换为“更好的格式”并将其保存到缓存中。
我想读取即将写入数据库的值,然后跳过写入步骤。
然而,我找到了一个返回我需要的值的函数。:
所以我的问题是,是否有任何模拟方法(使用 NSubstitute、Moq 或其他方法)可以让我读取返回值?我主要看到读取输入和替换输出。
我从此函数获得的返回值将与我的预期值进行比较。但是由于在这个函数之前有很多代码我不能只运行这个函数,我需要运行整个应用程序但在这里暂停它。
写入数据库的类只使用静态函数,所以据我所知,不可能模拟它并在那里获取输入。