摘 要:在软件行业中,软件测试在质量保证方面占据的作用越来越重要,其中自动化测试在软件测试中使用的比例也越来越高。本文主要通过Selenium与JMeter的两个实例,介绍如何用这两种工具进行自动化测试构建的过程。
关键词:自动化测试 Selenium JMeter
引言:
1991年第一次海湾战争期间,用于拦截飞毛腿导弹的爱国者导弹表现很差,导致多名美军士兵丧生在飞毛腿导弹的轰炸之下。爱国者导弹防御系统属于典型的safety system,如果它不能完成它的功能,说明它失效了(failure)。后来,调查出的原因主要是软件故障,超过了测试时使用时间,导致其range gated area发生漂移,不再精确,系统在跟踪来袭导弹的过程中产生了偏差,而且使用越久偏差越大。另外,该系统最初是设计用于拦截2马赫的导弹,而飞毛腿是速度是5马赫。爱国者导弹防御系统的问题属于安全系统开发过程中的典型问题,需求不能满足实际的要求,在过程中又没有检查出来。出现这种问题的原因是什么呢?没有充分的测试。
1.软件测试
即使是经验丰富的设计人员,也不能保证永远不出错。软件测试就是为了发现程序中的错误而分析或执行程序的过程。具体地说,软件测试是分析程序或根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并分析测试用例来运行程序,以发现程序错误的过程【1】。软件测试的目标就是生成用户满意的软件。而让用户的满意的软件主要包括易用性、性能、容量、可扩充性、可维护性、兼容性、可扩展性特征。
软件测试从动手上分为人工测试和自动化测试。人工测试一般指测试执行有人工完成。自动化测试一般为计算机模拟的人工测试,替代人的测试活动。
2.手工测试的局限性
任何一个测试都离不开手工测试,基于测试用例,在测试初期我们需要手工测试,但是手工测试也有它的很大局限性,首先不可能覆盖每一条路径,单元测试还不存在重复性问题,一旦到了回归测试,测试工作的工作量将会变的非常大,许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,这也是手工测试无法模拟的。如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。
3.用Selenium结合单元测试构建自动化界面测试
3.1Selenium技术
目前网络很发达,只要上网都离不开网页,如果您在某购物网站,选中了一件在促销的名牌手包,狂喜之下,果断的在线刷卡进行买单,可是付完钱后,系统给出了白色的空页面,这让您很是忐忑,这买卖到底成功没有?这就是页面问题,页面要求必须直观性、一致性、灵活性、友好性。
Selenium是ThoughtWorks公司的一个强大的开源Web功能测试工具系列,采用JavaScript来管理整个测试过程,包括读入测试套件、执行测试和记录测试结果。它采用JavaScript单元测试工具JSUnit为核心,模拟真实用户操作,包括浏览页面、点击链接、输入文字、提交表单、触发鼠标事件等等,并且能够对页面结果进行种种验证【4】。
3.2 Selenium web实例
以百度网页为例,需要在
针对测试结果的详细分析,10个并发用户下,查询事务均成功执行,访问操作的平均响应时间在61毫秒左右。从客户端资源的监控来看,该场景中CPU利用率均在正常范围,客户端性能正常。
5.结束语
从上面两个实例来看,看起来第一实例运用手工测试可以很简单的完成,但是我们知道一个页面类似的功能在一个网页上很多,如果进入到回归测试,人工来完成所有的功能需要几天或者几十天,但是如果做成自动测试,编码等都设计好,那么半个多小时就可以完成这是省了很多的工作量,而JMeter的实例是10个并发用户,可以改为1000个或者更多,人工同时点击几乎不太可能了。这是自动测试的优点,但是在实际测试中离开不手动测试,当初期功能不稳定时还需要手动测试完成。自动化工具的搭建也需要一定的时间和费用,在实际的测试中要根据项目的大小和要求采用合适的测试。
参考文献:
.北京:电子工业出版社
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。