技术开发 频道

性能测试的准备

    三、使用工具分析

    编写一个典型用户负载脚本的困难之处是发现你的用户是怎么使用的应用的。 这不是一门精确的学问。但是为得到一个合理的可靠的结果,第一步是看看您的访问日志。现在,我不会推荐手工做这件事,因为对于一个中型的Web应用,工作量也是巨大的。现在有大量商业或免费工具可为您分析访问日志。

    这些工具将告诉你有关你的服务请求的一些情况:

    a) 将服务请求按时间的百分比排序,并显示百分比。

    b) 放大或缩小分析时间间隔,便于以粗粒度或细粒度方式显示结果。

    c) 识别每天,周,月,年的高峰使用时间。

    d) 跟踪字节传输和请求的平均时间。

    e) 按照你的应用的内部,外部或地理位置,识别和分类请求的用户。

    f) 汇总成功请求的百分比。

    g) 汇总HTTP发生的错误。

    h) 汇总顾客忠诚度, 譬如回头客和平均会话长度。

    i) 跟踪从其他站点的转入情况。

    无论你选择哪种软件分析访问日志,重要的是你应该做这些分析工作并且把这些信息作为编写测试脚本的基础。有时访问日志的作用是有限的,在某些情况下不能提供足够的信息。例如前端应用只使用一个URL发出请求,而通过在请求中嵌入不同的参数区分业务功能。在这种情况下,就需要高级一些的工具根据不同的请求参数监测应用的使用情况和划分业务功能。

    访问日志只能提供部分解决办法。接下来需要对应用本身有更深入的理解。例如,当发出一个特定的服务请求时,你应该知道其不同的选项所控制的相应行为。这些信息的最好来源是应用的用例和负责该功能的架构设计人员。这些工作的目标是识别出真实世界中用户的使用行为,所以应该彻底和全面地完成此阶段任务。这里发生的错误将导致上文提到的"苹果和香蕉"搜索引擎的问题。

    为了全面获得更可靠和更详尽的最终用户行为信息,可以考虑Quest公司的User ExperienceMonitor(UEM)。UEM在最终用户和WebServer之间,实时捕获向你应用环境发出的每个请求,可提供有关真实用户所做的详尽数据,包括连接速度,浏览器版本,按地理位置汇总等信息。由于采用了被动的网络Sniff技术,所以对应用的性能影响为零。

    四、用户如何退出系统

    最后,有一个值得重视的问题,我们了解到目前客户在编写负载测试脚本时最大的错误是:用户不知道怎样退出应用系统。不管你把退出按扭作的多大,至多只有20%用户会使用。这是由于现在将Web作为主要业务平台的必然结果。商业Web站点正式基于此而得以快速发展并统治了Internet.

    因此,现在用户习惯以下面方式退出网站:

    1. 离开当前网站,转到其他网站

    2. 关上浏览器窗口。

    由于这已是根深蒂固的Web 使用模式,

    所以不能指望用户正确地退出网站。当编写测试脚本时,应用确定正确退出和非正确退出的用户比例,然后根据这个比例编写脚本。我们遇到的一个大型汽车网站,已经为此困扰了一年多,他们的应用服务器每隔几天就会崩溃,他们已经习惯于在晚上重起应用服务器。仔细分析HTTP会话的使用模式,我们发现闲置的会话非常多。

    我们检查了他们的测试脚本,发现每个测试场景都包含了正确的退出。他们就是基于这个假设进行优化的,因此优化工作并没有触及闲置的会话内存问题。在调整测试脚本,重新优化系统环境后,由于"Outof memory"引发的强制重起问题就解决了。

0
相关文章