首页 > 解决方案 > 如果客户无法向我提供有关网站的任何真实数据,我如何确定虚拟用户数量和节奏?

问题描述

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

在这些情况下,除了只是猜测或遵循“感觉正确”(即全部编造)之外,如何准确地提出具有适当虚拟用户数和良好起搏值的实际工作负载模型?

我使用 Loadrunner 进行性能/负载测试。

标签: performance-testingloadrunnervugen

解决方案


索要一个月的日志。

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

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

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

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

而且,从某种意义上说,这些其他组织在积极挑战你的结果方面是正确的。当他们做出影响系统可扩展性和响应时间的决策时,让他们设计的解决方案满足一组需求是不公平的。在第一次执行任何性能测试之前,您最好与您的客户一起提出这一点。

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

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

当您进行多用户性能测试时,这应该会留下边缘情况,例如资源分配过早、资源占用时间过长、资源分配过大、经常遇到问题、锁定共享资源争用。架构审查可能会发现这些问题,有人可能会说,“我们预先分配这个是因为......”或“营销部门说我们需要在取消分配前将购物车放置 30 分钟”或“ ....“ 反正你懂这个意思。

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

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


推荐阅读