Pau*_*rie 5 testing design-patterns scalability
我最近对识别软件可伸缩性测试的模式非常感兴趣.由于不同软件解决方案的可变性,似乎对可伸缩性测试软件问题的解决方案与设计和实现软件一样多.对我而言,这意味着我们可以为这种广泛使用的测试提炼一些模式.
为了消除歧义,我事先会说我正在使用维基百科定义的可扩展性测试.
我最感兴趣的是提出具有详尽描述的特定模式名称的答案.
我所知道的所有测试场景都使用相同的基本结构进行测试,其中涉及到针对要测试的处理代理的一个或多个请求者生成多个请求。Kurt的回答是这个过程的一个很好的例子。一般来说,您将运行测试来找到一些阈值,并运行一些替代配置(更少的节点、不同的硬件等...)来建立准确的平均数据。
请求者可以是生成请求的机器、网卡、特定软件或软件中的线程。它所做的只是生成一个可以以某种方式处理的请求。
处理代理是实际处理请求并返回结果的软件、网卡、机器。
然而,您对结果的处理方式决定了您正在进行的测试类型,它们是:
负载/性能测试:这是最常用的一种。处理的结果是看在各个级别或者各种配置下处理了多少。库尔特在上面寻找的再次是一个例子。
平衡测试:扩展的常见做法是使用负载平衡代理,将请求定向到流程代理。设置与负载测试相同,但目标是检查请求的分布。在某些情况下,您需要确保处理代理之间的请求达到均匀(或接近可接受的)平衡,而在其他情况下,您需要确保处理特定请求者的第一个请求的流程代理处理所有后续请求(通常需要像这样的网络场)。
数据安全:通过此测试,收集结果并比较数据。您在这里要寻找的是锁定问题(例如 SQL 死锁),它会阻止写入或在可接受的时间内或更短的时间内将数据更改复制到您正在使用的各个节点或存储库。
边界测试:这与负载测试类似,只不过目标不是处理性能而是存储多少会影响性能。例如,如果您有一个数据库,在 I/O 性能下降到可接受的水平以下之前,您可以拥有多少行/表/列。
我还推荐《能力规划的艺术》作为关于该主题的一本优秀书籍。
归档时间: |
|
查看次数: |
949 次 |
最近记录: |