我正在寻找一种“具体”的方法来个性化通过Web应用程序提供的服务的性能瓶颈。我正在寻找一种整体方法,包括测试计算机网络,数据库和Web应用程序。 假设您在Web应用程序前面,该应用程序允许您在登录公司网络后下载pdf文件。 您可以使用浏览器访问该应用程序 最终用户要求是Web应用程序必须允许在不超过1分钟内下载pdf文件(大小最大为5MB)。 一些技术细节: - 该应用程序包括数据库,文档管理系统(例如Alfresco)和Java代码片段。 - 用户通过向应用程序提供用户名和密码来验证他/她自己,应用程序将它们发送到LDAP服务器(LDAP服务器部署在另一个物理服务器上)。 java serlet执行此工作,并另外查询DB以了解用户的角色(用户可以是管理员,读者,作者)。 - 经过身份验证的用户访问搜索页面,搜索文档后将下载文件。搜索以这种方式工作:用户填写一些字段(例如,文档的名称),将字段发送到文档管理系统,文档管理系统执行文件的实际搜索并将结果返回给应用程序。 当用户单击下载按钮时,应用程序将从文档管理系统中检索文档。
底层网络应该是1GB Eth与一些路由器/网桥和负载均衡器,我们对网络拓扑有广泛的了解。
我的问题是:如果在某个地方(在网络中,在网络应用程序中,例如,编码不佳)存在性能瓶颈,这违反了以前的要求(1秒下载时间),我们怎样才能发现它?我们应该从哪个元素开始?例如,试图了解网络性能,然后是文档管理系统,最后是整个系统(应用程序,网络,数据库)。我们应该如何逐步增加下载请求的数量?
我正在寻找一种方法论,我已经阅读了
http://www.agileload.com/performance-testing/performance-testing-methodology/test-methodology
http://msdn.microsoft.com/en-us/library/bb924375.aspx
What performance testing methodology are you using for your webapps?
所有这些都包含很好的建议,但我想要一个更实用的方法来参考Web应用程序的测试。 提前谢谢
答案 0 :(得分:0)
5MB文件是1分钟还是1秒?你能发一张图吗? 如何连接各个部分?
有一种方法可以确定网络延迟和应用程序处理如何影响总响应时间。
它需要检测构成整个系统的浏览器和其他组件。即用JavaScript,Java,C / C ++,Perl,Python等编写代码,并将其嵌入到每个应用程序组件中,以便组件可以将事件报告给中央收集器。
如果无法轻松地将检测添加到组件中,那么另一种替代方法是在组件之间插入事件收集代理,然后让它们向中央收集器报告事件。您可以通过在路径中使用和不使用代理进行少量测试来确定和分解代理导致的延迟。
一旦事件到达中央收集器,就可以很好地了解响应时间的组成方式。