这不是有哪些压力测试工具的问题。恐怕比这困难得多。(至少对于我来说)

考虑一个论坛或博客的宁静架构,为每个帖子生成随机 ID。

模拟创建这些主题/文章很简单,因为您只需将表单数据发布到端点,例如: /article, , 或者 /topic

但是,您如何对这些文章/主题的评论进行压力测试呢?这是不同的,因为评论需要属于文章/主题,这意味着您需要这些项目的 ID。但是,如果您所能做的就是发布帖子,并且无法提取这些 ID,那么您将无法创建它们。

我正在创建一个在这方面类似的网站,但我不知道如何对评论的创建进行压力测试。

我有两个想法,但它们都非常糟糕:

  1. 用某种工厂提前生成一个庞大的系统,然后冻结它。从那里,我想我必须使用某种浏览器自动化来创建我对所有这些的“评论”。我想自动化会通过记录代理,就像 JMeter 提供的那样。然后,为了运行测试,我重新加载数据库,并重播大量日志文件。
  2. 利用 HTML 页面中提供的动态链接,对整个过程使用浏览器自动化。这里唯一的选择是硒,实际上,我们正在谈论一个巨大的硒网格,这将非常昂贵。可能也很难维护。

据我所知,选项 2 完全不可行,但选项 1 听起来令人难以忍受。我真的希望有人能提出更聪明的建议。

有帮助吗?

解决方案

选项1。

我的意思是,除了实现说明之外,您基本上只是要求一个测试环境。所以,答案是制作一个。无论以何种方式:

  • 生成它
  • 制作一次并重新加载
  • 随机化

任何。这是要采用的方法。

你如何进行测试是一个附带问题(单元测试/浏览器/其他,由你决定)。

但您已经到了需要使用真实数据进行测试的地步。所以让它发生吧。

其他提示

这是一个常见问题。我们通过从服务器响应中提取 URL 的动态部分来处理它。我认为该系统使用 Web 浏览器客户端 - 这意味着这些 URL 是在服务器响应中发送的。如果它们在回复中,那么您就可以获得它们。然而,既然你说“如果你所能做的就是发布帖子,而你无法提取这些ID”,那么也许情况并非如此?那么,您能澄清一下吗?

我们最近为我们的客户进行了大量的 Drupal 系统测试 - 这正是您所描述的问题。我们要么通过在用户浏览到他们想要评论的页面时从页面动态提取 ID 来解决这个问题,要么使用选项 1,或两者的组合。请注意,如果您有方便的负载测试工具,那么内容的生成并不太困难 - 使用该工具来完成。IE。运行“内容生成”负载测试。除了自动生成有用的数据之外,这还将为您提供一个测试数据库,然后您可以根据需要备份/恢复该数据库以维护您的测试基础设施。现在,您可以在更真实的环境中运行测试 - 一个已经包含大量内容的环境(当然,假设这 符合您的目的)。

如果您有兴趣,我很乐意演示我们如何使用我们的软件(Web Performance Load Tester)解决问题。

我曾经使用Visual Studio来解决此类问题。Visual Studio 允许 C# 编码的 Web 测试,可以以编程方式解析返回的 html,并据此采取操作。

我正在对 SharePoint 网站进行负载测试,并需要提前填充信息。我确实创建了一个负载测试,专门用于提前创建“随机”内容页面。我提前用 URL 填充了测试工具数据库,从而可以对加载的页面进行一些控制。

有了可用的“文章”列表和潜在注释列表,就可以编写伪随机数生成器(由于测试工具的异步性质,在存储过程中)以获得可重复的负载测试。这意味着每次运行负载测试时都会以相同的方式填充该站点。

确实需要付出一些努力来创建一种体面的方式来立即填充站点,但是负载测试的相关性的回报是相当好的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top