论文部分内容阅读
随着网络技术的发展,Web Services已经成为现今最热门的企业级技术,它的应用已普及到社会的各个行业和领域。在这种趋势下,为了提供给用户可靠、安全、稳定的Web服务,在任何一个Web服务投入使用之前都必须对其进行严格的质量测试,因此性能测试是Web服务系统测试的一个必不可少的环节。
但是目前传统的性能测试是在封闭的环境中构建一个模拟测试环境,利用多线程技术来模拟并发用户,把测试的关注点放在Web Services服务器的性能指标上,以提高服务器的可靠性、稳定性和并发响应为目标。但随着Web Services技术的发展,用户成为Web Services的主要参与者,必须从终端用户的角度出发,以提高用户体验为目标来度量Web Services的性能。对于企业来说,传统的Web Services性能测试必须要搭建模拟的测试环境,这不仅需要花费大量的时间和成本,而且由于压力的产生来自于实验室的封闭环境,网络状况单一,不能模拟真实的压力来源来满足测试的需求。此外,传统的性能测试还存在许多其他的问题,比如配置的测试服务器数目有限,系统只能模拟有限的并发用户数,不能产生较大的测试压力;当出现软硬件故障时系统没有良好的容错机制;系统无法根据各个测试节点的资源使用状况进行动态的资源调度等。
云计算是一种新兴的商业计算模型,它能提供给用户强大的计算能力和数据存储能力,并且具有可扩展性、高可用性、减少管理和维护成本等优点。这些优点可被用于搭建基于云的Web Services性能测试系统并解决当前性能测试中存在的问题。
本文中,我们整合了云计算技术和Web Services性能测试技术,首先提出了一个基于云的Web Services性能测试系统(CPTS,Cloud-based Performance Testing System forWeb Services)架构,然后详细介绍CPTS的关键技术--负载分配算法,它主要包括四个子算法:负载信息收集与分析算法、负载预测和评估算法、任务调度算法、动态迁移算法。通过对各个子算法进行详细分析和实验评估,验证了CPTS负载分配算法预测的准确性,达到系统动态负载均衡并提高了测试效率。
CPTS的提出不仅给复杂的Web Services应用带来了一个基于全交付链的测试方法和工具,更重要的是,由于系统的高度可伸缩性,我们的系统可以服务更多的用户,并且通过合理的调度机制充分的利用虚拟资源,实现经济价值的最大化。