1、成员组成
(1)组长:张俊怡
(2)组员:孟令军
2、文献基本情况介绍
(1)文献名称:Performance Testing as aService for Web Applications
(2)文献作者:Amira Ali,Nagwa Badr
(3)发表时间:2015
(4)文献出处:IEEE Seventh International Conference on Intelligent Computing and Information Systems
(5)文献页数:6
3、文献内容概述
本文介绍的是一种通过云计算平台为web应用性能测试提供服务的模型,性能测试是一种完成软件测试以显示Web应用程序在一定的工作量下行为性能的测试。云计算新兴技术可用于软件领域工程提供云测试,以克服常规测试的缺陷。因此,测试即服务(TaaS)是以完全自动化的方式引入作为执行所有测试活动的服务模型,按需付费使用。而且,TaaS提高了测试效率,缩短了时间测试所需的成本。在本文中,性能TaaS引入了Web应用程序框架,它提供了所有这些性能测试活动包括自动测试用例生成和测试执行。另外,建议框架解决了许多问题:maxImIze资源利用率和持续监测来保证系统执行。
软件测试是一个确保软件质量的重要活动。但是,它是一个劳动密集型过程,需要很多成本,时间和成本资源。随着软件系统的发展,更复杂,规模大,增加了传统测试困难。因此,将软件测试迁移到云端环境是克服缺陷的最佳解决方案传统测试利用云无限存储,资源和可扩展基础设施,从而减少执行测试大型应用程序所需的时间并导致成本效益解决方案引入TaaS作为服务模型执行所有测试活动,包括测试用例生成并测试执行。
主要技术、方法的详细阐述(最好结合具体实例阐述)
Web应用程序的性能TaaS框架介绍,用户可以在其中提交测试请求执行性能测试程序自动。
TaaS框架
系统架构由三层组成:A:用户界面层,B:服务管理和测试层和,C:IaaS层。A.用户界面层:它是TaaS中的第一层用户提交与输入相关联的测试请求的平台测试过程需要(即SUT(software under test)的日志文件),定义测试请求要求(即截止日期)并接收测试结果。B.服务管理和测试层:这层提供了TaaS系统的主要功能。
它由六个主要模块组成:
1.请求控制器:它是第一个正在使用的模块,管理和测试层请求控制器,接收通过用户界面提交的测试请求,将测试请求转换为测试任务并保存任务TestTasks数据库中的要求然后添加任务list_test_tasks由调度程序模块调度。
2.调度程序:该模块负责调度任务和定义任务执行顺序。作为,调度器模块从请求控制器收List_ Test_Tasks,调度程序在List_ Test_Tasks中计算每个任务的优先级然后按照每个优先级对任务进行排序。要计算任务优先级,我们考虑两个参数:每个任务的截止日期和等待时间。任务应该是在用户定义的期限之前执行,等待时间被认为是在等待任务期间减少浪费的时间
执行。调度方法的工作原理如下:根据任务期限升序(即任务与较早的截止日期将有更高的优先级)。然后任务有相同的截止日期将根据等待时间再次排序
每个高等待时间的任务将首先执行。
3.监控:为确保拟议系统的可靠性,该模块负责跟踪所有的实时状态任务和资源。
4.资源分配:这个模块旨在最大化资源利用,提高系统负载平衡。
5.容错:本模块专注于处理任何在执行任务期间是否发生故障虚拟机故障由于监视器模块跟踪虚拟机/任务状态发生故障时,Monitor模块转发失败细节到容错模块,通过应用一个来处理它的以下策略:
任务执行中出现策略1失败的任务将被重新列入List_ Test_Tasks。
在VM中发生策略#2失败,所有的任务分配给失败的虚拟机将返回到要重新安排的列表测试任务。
测试任务处理:这是最重要的模块所有性能测试程序都完成,包括自动测试用例生成和测试执行。
性能测试的目的是为了执行不同用户模拟用户行为的测试脚本负载水平以确保Web应用程序满足质量要求,因为Web应用必须快速可靠。测试任务处理模块由以下组成三个子模块:i测试用例生成,ii测试脚本执行和iii结果收集器。
测试用例生成:它是最重要的部分性能测试中的测试用例定义为一组步骤由并发虚拟用户数进行测试包括在吞吐量方面SUT的性能(即执行请求每秒)和响应时间(即时间)被执行某些请求)。测试中的每个步骤case是对SUT的HTTP请求。下图展示了如何基于从SUT的日志文件中提取的信息自动生成测试用例。性能测试中的测试用例必须模仿真实的用户使用SUT时的行为,否则测试用例完全相同不一致和测试将无效。这就是为什么我们使用日志文件SUT生成测试用例。
测试脚本执行:如下图所示。测试以上生成的脚本将由其中一个执行性能测试工具将产特别的SUT的工作负载。在提出的系统中,Apache JMeter被用作执行性能测试脚本的工具。
结果收集器:结果收集器模块IS负责将所有测试脚本的结果收集成单报告然后显示给用户。
进行实验来评价:其中,n是任务数量,i,T_Finishi和T_Submiti是任务i的执行时间,完成时间,并提交时间。
进行实验来评价的实用性提出的制度。在哪里使用两台虚拟机。使用VMware [34]创建虚拟机物理机。每个虚拟机有2GB内存。使用场景在实验中如下:许多测试请求都是通Taa平台发送的用户界面。2.请求控制器将提交的测试请求转换成测试任务并保存其要求的请TestTasks数据库。3.Scheduler模块从请求中接收List_ Test_Tasks控制器,然后调度器将任务分解成一个排序任务列表。排序任务列表发送到资源分配模块,然后资源分配将每个任务分配给一个虚拟机每个任务在分配的VM上执行。哪里测试生成案例,然后执行测试脚本最后执行测试结果返回给用户。
如表所示,通过比较Hit值FCFS和我们提出的时间表方法,据观察我们提出的调度方法的命中率始终较高。
4、学习总结
云计算作为新兴技术提供通过所有云资源和基础设施提供测试服务的机会,导致了显降低测试所需的成本、时间和精力。由于Web应用程序的广泛传播,必要性性能测试增加以确保可靠性和不同工作负载下Web应用的速度。在本文中,引入了用于Web应用程序的TaaSWeb应用程序的性能测试模型。在提出的系统中,全部执行测试程序自动化的方式提高了测试效率减少测试软件系统所需的时间。进行实验以验证我们提出的框架。实验结果显示我们的提出了调度算法具有更好的效果。