[发明专利]一种SparkSQL应用程序的自动化测试方法和装置有效
| 申请号: | 201811304692.3 | 申请日: | 2018-11-04 |
| 公开(公告)号: | CN109491904B | 公开(公告)日: | 2021-10-26 |
| 发明(设计)人: | 王娜;廖艳云;林飞;古元;毛华阳;华仲锋 | 申请(专利权)人: | 北京亚鸿世纪科技发展有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100095 北京市海淀区高里*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 一种SparkSQL应用程序的自动化测试装置涉及信息技术领域,尤其是大数据应用领域。本发明由测试环境、Jmockit、sqlList记录器、数量对比器、语句对比器组成;测试环境由maven工程配置器、jar包导入器、HDFS环境变量设置器、大数据组件引入器组成;实现本发明降低了测试难度不需要构造复杂的测试数据,根据SparkSQL应用程序的特点,将对比预期结果数据,转换为对比预期sql语句,降低了测试难度和测试效率;提高了测试效率从第二轮开始的迭代测试可以通过sql语句回放来自动验证程序的正确性,极大的提高了测试效率;提高了测试覆盖率第一轮的代码走读和sql查看可以覆盖整个业务逻辑,后期迭代测试根据sql语句回放,可以准确找到程序业务逻辑更改的地方,保证回归测试的覆盖率。 | ||
| 搜索关键词: | 一种 sparksql 应用程序 自动化 测试 方法 装置 | ||
【主权项】:
1.一种SparkSQL应用程序的自动化测试装置,其特征在于由测试环境、Jmockit、sqlList记录器、数量对比器、语句对比器组成;测试环境由maven工程配置器、jar包导入器、HDFS环境变量设置器、大数据组件引入器组成;实现一种SparkSQL应用程序的自动化测试装置的主要步骤包括:1)部署测试环境①由maven工程配置器读取被测应用程序,并判断被测应用程序所需的测试环境的配置类型;②当被测应用程序存在jar包时,通过jar包导入器完成测试环境配置,jar包导入器通过pom.xml的依赖包引入;③当被测应用程序运行于HDFS分布式文件系统时,通过HDFS环境变量设置器完成测试环境配置,HDFS环境变量设置器自动从hadoop官网下载与被测应用程序版本一致的hadoop包,并根据本机的操作系统类型设置hadoop.home.dir属性;④当被测应用程序运行于Spark和Hive的大数据环境时,通过大数据组件引入器完成测试环境配置,大数据组件引入器通过添加pom.xml依赖包来完成测试环境配置;2)对SparkSession.sql(String sqlText)模拟①使用单元测试当中的Mock工具Jmockit,对SparkSQL API中执行sql语句的方法SparkSession.sql(String sqlText)进行模拟,使SparkSQL在被测应用程序内部调用SparkSession.sql(String sqlText)执行sql的同时,返回执行的具体sql语句;②使用sqlList记录器接收并保存被测应用程序执行的sql语句,sqlList记录器使用sqlList变量接收被测应用程序执行的sql语句;3)sql语句录制sql语句录制是指获取被测应用程序的SaprkSQL应用程序运行过程中顺序执行的sql,生成预期sql;①变量模拟对sqlList记录器中的sql语句相关的变量,采用Jmockit工具进行模拟,使变量的取值固定,保证在不同时间和不同应用场景下,被测应用程序的SparkSQL应用程序执行是同样的sql语句;②运行被测应用程序,在SparkSession.sql(String sqlText)模拟和变量模拟的前提下,获取程序运行中顺序执行的sql语句,将顺序执行的sql语句保存到文件生成预期sql;4)sql语句回放①获取执行sql运行被测应用程序,在SparkSession.sql(String sqlText)模拟和变量模拟的前提下,获取程序运行中顺序执行的sql语句,将顺序执行的sql语句保存到文件生成执行sql;②sql数量对比数量对比器读取预期sql和执行sql,对比预期sql的数量和执行sql的数量,当预期sql的数量和执行sql的数量不一致,测试结果为不通过,结束sql对比;当预期sql的数量和执行sql的数量一致,进行sql语句对比;③sql语句对比语句对比器读取预期sql和执行sql,去除语句中的标点符号、空格、回车、换行及非语义的内容,将预期sql和执行sql转换成预期sql字符串和执行sql字符串,对比预期sql字符串和执行sql字符串,当预期sql字符串和执行sql字符串不同时,测试结果为不通过;当预期sql字符串和执行sql字符串相同时,测试结果为通过。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京亚鸿世纪科技发展有限公司,未经北京亚鸿世纪科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811304692.3/,转载请声明来源钻瓜专利网。





