图3是生成的订单XML文件导入SupplyOnline平台的类图。
图3 XML文件导入SupplyOnline
VastPOImport类继承一个公共文件导入接口FileImport,封装上层导入方法及具体实现。
方法中只要使用函数importFiles.setFolderPath,就可以通过相对或绝对路径导入XML文件,如importFiles.setFolderPath ("D:\\Projects\\VAST\\xml\\Batch_VastPOdaily_novmi.xml");只要替换不同订单信息的XML文件,就可以实现大批量订单数据的导入功能。
图4是订单批量创建并导入SupplyOnline平台实现的实例,有了这些订单信息,可以进行订单信息的查询和确认,以备后续ASN交货流程中使用。通过修改订单类型、物料描述等参数信息生成的不同XML文件,利用复用测试方法和脚本,完成看板订单和闭口订单信息在平台上的数据创建与导入。
图4 SupplyOnline平台日程订单列表
3.2 验证信息
数据创建、导入到平台后,如何从海量的信息中获所需要的有用信息,包括对海量信息的分析、搜索、数据整合、报告生成和系统维护等,都是非常大的挑战。
这里仅需针对生成的数据进行正确性验证。如图4所示,点击"下载Excel"按钮,可以生成CSV格式的文件进行保存。最初原始报文信息其实已经转换成了通俗易懂、便于浏览的订单信息列表。和批量创建数据一样,我们可以用openCSV.jar包中的方法函数来识别CSV文件内容,对数据进行比对,验证其正确性。
下文是读取已下载的CSV文件的部分代码。
public static void VerifyData(String args1, String args2) {
……
CSVReader cr = new CSVReader(new FileReader(csv));
String[] nextline;
// 把一行数据分割成多个字段
int i = 0;
// 读取直到最后一行
while ((nextline = cr.readNext())!= null){
if (nextline[i].toString().contains("aaaa")){
System.out.println("Data is correct.");
……
}
while (!(nextline[i].toString().contains("partNO"))){
i++;
}
}
……
}
args1, args2是传入的参数变量,分别定义数据信息字段和其对应数值。通过循环语句readNext())!= null对逐行扫描CSV文件数据,进行遍历查询,若找到对应的数据信息,记录其数组ID,对比该列下所有的数值,验证是否与系统返回的结果一致,最后完成CSV文件与XML文件中订单数据的匹配和确认。
4、自动化测试应用
4.1 搭建自动化框架
实现基本功能的方法后,可以搭建自动化测试框架来进行自动化测试工作。创建的数据、编写的脚本,这些测试资产具有非常大的重复利用价值。结合自动化测试框架,可以把工作效率最优化,节省重复操作的成本。对于大数据系统更加需要自动化脚本来实现数据创建、查询和验证。
很多测试工程师都在尝试在自动化测试架构上有所建树。基于Web应用系统的自动化测试框架包括自动化测试理论的研究,Web页面元素及HTML语法分析等[7],而丰富的自动化测试工具也给测试工程师提供了更多的选择。
由于SupplyOnline是基于Java开发,Oracle为数据库的系统平台,从节省测试工具成本来说,当今流行的商业工具HP QuickTest Professional,LoadRunner暂不考虑,选择支持JAVA的开源环境来搭建自动化测试框架,是不错的想法[8]。目前开源自动化测试工具主要包括Selenium、WebDriver、Maven、TestNG、JUnit等。最终选择了Eclipse下搭建Selenium WebDriver、Maven和TestNG的自动化测试环境。
WebDriver就是基于Selenium的一个自动化测试类库,但它不再是运行在浏览器内的JS程序,而是自己可以控制浏览器。旨在改进Selenium中出现的诸多问题,并且提供了非常易用、可读性很强的API[9]。WebDriver技术使得读取Web页面元素对象更加方便,使用Webdriver不要求你把一门语言研究的多精通,你只要知道语法,和常用的包,常用的类,常用的方法就足够。Maven是基于项目对象模型(POM),可以通过一段描述信息来管理项目的构建,报告和文档的软件项目管理工具。可以作为Java编程项目的标准构建工具。TesgNG全称Testing Next Generation,即下一代测试技术,是一个设计用来简化广泛测试需求的测试框架,既可以做单元测试,也可以做集成测试。相比JUnit,它更灵活、强大,创新、可扩展性较好。
图5简单表明了Selenium在用户接口层和数据库层的工作原理。
图5 Web页面元素的自动化验证过程
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。