论文部分内容阅读
目前电商系统变更极其频繁,迫切地需要自动化测试来代替人工繁琐而又重复的劳动。自动化测试相关的研究已经很多,但多数只是针对某一方面,比如单一接口或者单一页面或者性能等,而缺乏将接口、页面、持续集成系统和缺陷管理系统整合的自动化测试平台。本研究基于LINQ及Selenium技术,采用了混合自动化测试框架,设计并实现了一个电商系统自动化测试平台。使用模块化测试框架整合了接口自动化测试模块、页面自动化测试模块、与Jenkins系统集成模块以及与禅道系统的集成模块;使用数据驱动测试框架将输入输出参数灵活地配置在XML文件中。在系统设计与开发过程中,主要针对以下问题进行了研究:(1)基于LINQ技术实现了接口自动化测试。运用LINQ to XML技术读取XML配置文件中的相应参数,供接口自动化测试逻辑层的数据传输;使用LINQ to SQL技术来获取自动化测试执行后数据库中的字段值,并将字段值同配置文件中的字段值进行比对,从而校验其正确性。该设计体现了测试数据与测试脚本分离的思想,提高了系统的可扩展性,是数据驱动测试思想的具体实现。(2)基于Selenium技术实现了页面自动化测试。首先通过LINQ to XML技术获取输入参数,在页面上通过Selenium对元素进行定位和操作,并将XML配置文件中的参数传递到后台,最终通过“测试失败->等待->重试”的机制校验测试结果。该设计不仅体现了测试数据与测试脚本分离的思想,同时采用了“测试失败->等待->重试”的机制避免了由于页面加载时间长而误判的测试失败。(3)基于LINQ技术实现了与Jenkins系统的集成。系统将测试平台交互页面的定时任务配置时间传递给后台,并通过LINQ to XML技术完成对Jenkins系统的配置文件信息的修改。该设计实现了真正意义上的自动化测试,不仅可以人工在页面触发自动化测试,实现测试过程的自动化,同时也实现了测试执行的自动化。(4)基于Selenium技术实现了与禅道系统的集成。在自动化测试过程中,一旦发现缺陷,则通过Selenium技术对禅道系统的页面元素进行定位和操作。自动记录Bug到禅道系统,分别以“接口自动化测试”和“UI自动化测试”的身份登录,并记录Bug标题,同时将缺陷发生时保存的截图作为附件上传,为后续测试人员分析测试结果以及开发人员修改程序提供依据。该自动化测试平台不同于传统的自动化测试平台,它不仅实现了传统意义上的接口测试和页面测试,还整合了与持续集成系统和缺陷管理系统的集成。并且,它基于LINQ技术和Selenium技术,结合了模块化框架思想和数据驱动测试思想,实现了混合测试框架的设计与应用。该自动化测试平台自2015年5月投入使用。使用结果表明,与传统的手工测试相比,该自动化测试平台大大提高了工作效率,将原来一天的工作量缩短到十分钟内即可完成。并且该自动化测试平台避免了手工测试时因测试人员的疏忽而导致的错误,保证了测试的准确性和直观性。另外,该测试平台将缺陷自动记录到禅道系统中,方便了用户分析缺陷原因。同时还实现了与Jenkins系统的持续集成,确保在无人执行测试的情况下也可以自动执行测试用例。