Performance 你知道测试API性能的好工具吗?

Performance 你知道测试API性能的好工具吗?,performance,api,http,network-programming,performance-testing,Performance,Api,Http,Network Programming,Performance Testing,我需要模拟来自不同地理位置的3G网络和http请求 API:httprestful-JSON 地理位置:欧洲、美国 客户端:用于JSON负载测试的移动设备, 对于一般的休息,您可以使用 -“用于负载测试多种协议的工具,如Web服务、REST、AMF、JMS、JDBC以及网站。LoadUI使用高度图形化的界面”听起来您在问两个不同的问题: API服务器的性能特征是什么?最有用的表述是:在响应时间超过您可接受的水平之前,它可以服务多少并发用户 您的客户端设备的性能体验是什么 我鼓励您将这两个问

我需要模拟来自不同地理位置的3G网络和http请求

API:httprestful-JSON

地理位置:欧洲、美国

客户端:用于JSON负载测试的移动设备,

对于一般的休息,您可以使用
-“用于负载测试多种协议的工具,如Web服务、REST、AMF、JMS、JDBC以及网站。LoadUI使用高度图形化的界面”

听起来您在问两个不同的问题:

  • API服务器的性能特征是什么?最有用的表述是:在响应时间超过您可接受的水平之前,它可以服务多少并发用户
  • 您的客户端设备的性能体验是什么
我鼓励您将这两个问题分开,并独立测试它们。在3G上运行的设备将很难产生足够的负载来给配置良好的web服务器带来压力,而在全球范围内委托数千个负载测试节点通常是不划算的。此外,一旦流量到达您的web服务器,它就不应该真正关心它是否来自同一个城市、国家或大陆,或者它是否来自移动设备、PC或负载测试服务器

因此,我会使用您喜欢的任何负载测试工具来测试web API的性能。ApacheJMeter是免费的,但有一点学习曲线;然而,它可以从多个云提供商处获得,这允许您进行测试并从不同的大陆运行它们。谷歌“Jmeter云”获取更多详细信息

如果性能是一个关键问题,那么您可能希望有一个连续的测试机制,让您的代码每一周左右接受一次性能测试,并在执行过程中进行优化—将优化工作留到项目结束通常是相当危险的

下一个问题是“好的,所以我知道我的API服务器可以在平均响应时间<1秒的情况下服务1000个并发请求”(或其他任何情况)——这如何转化为最终用户体验

只有当您真正清楚您的web服务器不是瓶颈时,攻击它才有意义,因为您为优化性能而做出的大多数决策都非常重要

从逻辑上讲,如果您知道您的Web服务器在某个级别响应,那么最终用户的性能会受到网络延迟和吞吐量的影响。延迟通常通过ping时间的粗略统计来衡量:一个网络数据包在客户端和服务器之间传输需要多长时间?如果不重新审视您的整个托管策略,就很难或不可能改进ping时间;这取决于光速、主机场之间的连接以及客户端和服务器之间的几十个其他网段

吞吐量通常以每秒字节数为单位。通常,这是您可以影响的—例如,通过减少API的冗长程度、使用压缩等

3G设备通常具有相对较差的网络延迟特性,但在正常情况下吞吐量相当不错。然而,有许多情况会影响延迟和吞吐量,这是完全不可预测的——繁忙的地点就是一个典型的例子:一个装满3G设备的足球场意味着个人用户的连接往往很差

测试这一点很难。我将其分为3G设备测试和地理差异测试。为了在3G设备上测试性能特征,我会在专用测试套件(可能基于JMeter)前面使用带宽调节器模拟网络条件


拼图的最后一部分可能很昂贵——有一些专业公司可以测试世界各地的web性能。他们在世界各地都有节点,可以在那里执行测试脚本;他们通常为您编写脚本,并为您提供一个web界面来运行和测量测试。我过去用过,发现它们很好。这种测试是昂贵的,所以我只在项目结束时使用它,一旦我排除了所有其他性能方面的考虑

你能提供多一点背景吗?3G-客户端或服务器,还是点对点?哪个地理位置?什么是API—REST、SOAP、JSON?