如果客户无法提供有关网站的任何真实数据,我如何确定虚拟用户数量和节奏?

How do I determine virtual user amount and pacing if the client cannot give me any real data about the website?

我遇到过许多无法真正提供有关网站高峰使用量的真实生产数据的客户。我经常得不到每小时的最高浏览量等

在这些情况下,除了只是猜测或遵循“感觉正确”的内容(即全部编造)之外,人们究竟如何提出具有适当虚拟用户数量和良好节奏的现实工作负载模型值?

我使用 Loadrunner 进行 performance/load 测试。

求一个月的日志

  • 查找会话持续时间的统计信息,然后计算会话持续时间阻止的不同 IP 的数量。
  • 一旦你有高流量小时,计算页面实例的数量。业务流程通常会有一个独特的终止页面,让您了解特定操作发生了多少次,例如请求新密码、更新配置文件、业务流程 1 等...

有了这个,您将可以衡量用户和操作。您将希望您的利益相关者获得这些数据的所有权。作为质量保证,我们不应该同时拥有需求和针对它的测试。我们应该拥有一个,但不能同时拥有两个。如果您的客户不会拥有该需求,将其级联到组织的其他部分,假设您将被冷落,结果他们不喜欢......即,在部署到生产之前需要解决的缺陷.

现在是您最大的挑战,需要由您的客户解决流程问题......您将使用组织、体系结构、开发的其他部分没有的需求进行测试,平台工程,当他们构建解决方案时。即使你的要求是完美的恢复,再加上一些增长,你发现的任何缺陷都会被积极挑战。

您的测试将不符合组织任何其他部分使用的任何假设或要求。

而且,从某种意义上说,这些其他组织积极挑战您的结果是正确的。当他们做出影响系统可扩展性和响应时间的决策时,让他们设计的解决方案满足一组要求是不公平的。明智的做法是在首次执行任何性能测试之前与您的客户讨论这个问题。

你可以给自己争取一些时间。如果客户确实有特定响应时间的需求,例如采用 Google RAIL 模型,那么您可以在接受任何代码之前实施门控 multi-user 性能测试该代码应符合单个用户的要求。对于两个或更多用户来说,它不会变得更快。实施此硬门将解决大约 80% 的性能问题,因为使代码符合单个用户所需的更改通常会对 multi-user 前端带来好处。

你也可以通过第二种方式为自己争取一些时间。使用 Google Lighthouse and GTMetrix 等工具查看他们当前的站点。我们大多数人都是习惯的产物,包括架构师、开发人员和运维人员。我们设计、构建、部署我们知道并熟悉的模式……通常是一遍又一遍地重复相同的模式,直到我们被迫做出改变。从 Lighthouse 和 GTMetrix 中提取的性能反模式很可能会被带到未来的版本中,除非它们被要求缓解。在 运行 进行性能测试之前,就可以直接引用这些工具的缺陷。您将需要管理支持,但在 GTMetrix 全面得分至少为 B 且 Lighthouse 得分为 90 或更高之前,您甚至可能考虑不接受用于 multi-user 性能测试的构建。

当您进行 multi-user 性能测试时,这应该会留下一些边缘情况,例如资源分配过早、资源占用时间过长、资源分配量过大、触发频率过高、锁定共享资源的争用。架构审查可能会注意到这些,有人可能会说,“我们 pre-allocating 这是因为......”或“营销人员说我们需要在 de-allocation ”或“....”好吧,你明白了。

不要忘记在进行功能测试时使用数据库探查器 运行ning。您可能会在这里找到一些缺失的索引或高成本查询,这些问题也应该在 multi-user 性能测试之前解决。

您可能想知道为什么我要在您进行性能测试之前指出所有这些事情。 Darnit,你被雇来进行性能测试!您即将进行的测试在政治上具有很高的风险。即使它发现了一些丑陋的东西,因为组织的其他部分没有从要求中受益,结果也可能会被拒绝,直到问题出现在生产中。通过将焦点转移到 objective 措施,甚至在您需要 运行 两个愤怒的用户在一起之前,就有许多途径可以找到和解决性能问题,这些问题在政治上的波动要小得多。深思。