本发明专利技术公开了服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:101)前置判断步骤、102)元素简单判断步骤、103)元素判断步骤、104)递归解析步骤、105)列表对比步骤、106)遍历判断步骤;本发明专利技术提供了一种在保证精准到字段断言的基础上,又可以保证数据的全量断言,可以大幅提高现有断言方法的可靠性、适用性和广泛性的服务于网络传媒行业的接口自动化测试断言方法。
Interface automatic test assertion method for network media industry
【技术实现步骤摘要】
服务于网络传媒行业的接口自动化测试断言方法
本专利技术涉及自动化测试断言领域,更具体的说,它涉及服务于网络传媒行业的接口自动化测试断言方法。
技术介绍
接口自动化测试断言,就是在接口自动化测试过程中,通过编程语言将目标系统接口返回的数据,用一定标准进行校验和断言,从而输出校验结果作为测试结果。它是接口自动化测试的一部分,也是决定测试用例是否通过的主要步骤。网络传媒行业业务系统多是服务于直播、点播等相关业务,其系统接口的返回数据多为随机或定向推荐的影视数据、直播节目单以及运营系统上编排的点播栏目信息。其主要特点是:1、数据顺序可变性:点播栏目信息等通过运营系统编排后,接口返回的不同栏目的排序或者同一栏目下影视剧资产的排序往往会发生变化。2、数据量大:涉及节目单或者点播栏目类的数据量较大,如一个点播栏目下一般会有上百部资产,而每部资产会由几十个字段来描述。3、数据结构复杂,嵌套多:直播节目单或点播类相关的接口返回数据的层次复杂,分类多,导致数据结构呈多层嵌套状。如直播节目单相关接口,数据返回包含多日数据,不同频道数据,同一频道里不同时间段的数据等;又如点播类接口返回一个大栏目下的多个不同子栏目及子栏目下的不同专题下的数据。基于以上特点,网络传媒行业系统的接口自动化,在断言方面有一定的个性化需求。目前,市场上接口自动化测试产品提供的断言功能,主要使用的方法有:1、用接口实际返回值和预期值进行比较,当两个数据所有元素的字段名称、字段值、字段顺序均相同(完全匹配)则判断匹配成功,否则判断匹配失败;2、用接口返回值里的字段进行匹配,如接口返回三个字段:name,age,telephone,分别获取这三个字段,并将其值和预期值进行对比,一致则匹配成功,否则匹配失败。基于上述方法存在以下缺点:缺点一:接口返回的结构化对象数据里嵌套有结构化对象数组(以下简称数组),数组里的字段的顺序会变化,若使用完全匹配方法,尽管进行对比的实际返回和预期的两个数组的字段数量、字段名称和字段值均相同,但由于两个数组里字段的顺序不同,导致断言结果为不同。缺点二:为了避免完全匹配导致的上述缺点一的问题,可以采用逐个获取单个字段来进行对比的方法。但由于上述网络传媒行业业务系统接口返回数据的特点3--数据结构复杂,嵌套多,在单个字段比较时需要准确地引用多层结构里的某一字段,在做断言时,容易由于人工失误导致输入某字段的引用关系错误,或者漏设置某一字段的断言,最终导致测试结果不准确。缺点三:由于网络传媒行业业务系统接口返回值数据量大,在逐个获取单个字段进行对比的断言设置阶段,太耗时费力,且容易出错,不利于提升测试效率。
技术实现思路
本专利技术克服了现有技术的不足,提供了一种在保证精准到字段断言的基础上,又可以保证数据的全量断言,可以大幅提高现有断言方法的可靠性、适用性和广泛性的服务于网络传媒行业的接口自动化测试断言方法。为了解决上述技术问题,本专利技术的技术方案如下:服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL/Empty,则输出结果为数据A和数据B相同;若数据A和数据B只有其中一个为NULL/Empty,则输出结果为数据A和数据B不同;若数据A和数据B都不为NULL/Empty,则继续数据A和数据B的字段数量是否相等,数据A和数据B的字段数量不相等,则输出结果为数据A和数据B不同;数据A和数据B的字段数量相等,则继续判断步骤102);102)元素简单判断步骤:获取数据A中的第一个元素设为a,在数据B中查找是否存在同名的同级元素:若在数据B中不存在同名的同级元素,则输出结果为数据A和数据B不同,若数据B中存在同名的同级元素,则将数据B中同名的同级元素设为b;103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,如果元素a和元素b都为基本数据类型,则直接对比,若元素a和元素b不相等,则输出结果数据A和数据B不同,若元素a和元素b相等,则获取数据A的下一个元素,继续上述步骤102)进行元素简单判断;如果元素a和元素b都为非数组的结构化对象类型:则令数据A=a,数据B=b,并进行步骤101)的前置判断;如果元素a和元素b数据类型不相同,则输出结果数据A和数据B不同;如果元素a和元素b数据类型相同,且都为数组类型,进入步骤104);104)递归解析步骤:若元素a和元素b为数组类型数据,则将其子元素分开进行比对,并继续本步骤104)进行递归解析;105)遍历判断步骤:遍历数据A中所有元素,进行以上步骤101)至步骤104)的对比,如果数据A中每个元素都在数据B中存在同级且判断相同的,则输出结果为数据A和数据B相同。进一步的,步骤104)若元素a和元素b为数组类型数据,则将其子元素分开进行具体比对如如下:将其子元素分别存入列表list-a和列表list-b;判断列表list-a和列表list-b的字段数量是否相同,如果列表list-a和列表list-b的字段数量不相同,则输出结果数据A和数据B不同;如果列表list-a和列表list-b的字段数量相同,则循环获取列表list-a和列表list-b的子项,分别设为a1、b1,并令A=a1,B=b1,进入步骤101)的前置判断;如果判断结果a1和b1相同,则继续列表list-a和列表list-b的下一个子项判断;如果列表list-a和列表list-b中有一项或以上不同,则输出结果数据A和数据B不同。本专利技术相比现有技术优点在于:本专利技术由于使用了递归解析方法,将数组分层数据解析后,再进行逐个比较,对比市场现有的断言方法,可以有效地解决网络传媒行业具有的数据顺序可变的接口返回值的断言问题。本专利技术在保证精准到字段断言的基础上,又可以保证数据的全量断言,可以大幅提高现有断言方法的可靠性、适用性和广泛性。本专利技术自动遍历并获取全部元素,对各元素进行解析,加入了多种场景的断言方法,取代了单个字段校验时需要人工介入的工作,大幅提高自动化测试断言的效率,保证了可靠性、便捷性。附图说明图1为本专利技术的流程图。具体实施方式下面结合附图和具体实施方式对本专利技术进一步说明。实施例1:如图1所示,服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL本文档来自技高网...
【技术保护点】
1.服务于网络传媒行业的接口自动化测试断言方法,其特征在于,具体包括如下步骤:/n101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL/Empty,则输出结果为数据A和数据B相同;若数据A和数据B只有其中一个为NULL/Empty,则输出结果为数据A和数据B不同;若数据A和数据B都不为NULL/Empty,则继续数据A和数据B的字段数量是否相等,数据A和数据B的字段数量不相等,则输出结果为数据A和数据B不同;数据A和数据B的字段数量相等,则继续判断步骤102);/n102)元素简单判断步骤:获取数据A中的第一个元素设为a,在数据B中查找是否存在同名的同级元素:若在数据B中不存在同名的同级元素,则输出结果为数据A和数据B不同,若数据B中存在同名的同级元素,则将数据B中同名的同级元素设为b;/n103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,如果元素a和元素b都为基本数据类型,则直接对比,若元素a和元素b不相等,则输出结果数据A和数据B不同,若元素a和元素b相等,则获取数据A的下一个元素,继续上述步骤102)进行元素简单判断;/n如果元素a和元素b都为非数组的结构化对象类型:则令数据A=a,数据B=b,并进行步骤101)的前置判断;/n如果元素a和元素b数据类型不相同,则输出结果数据A和数据B不同;/n如果元素a和元素b数据类型相同,且都为数组类型,进入步骤104);/n104)递归解析步骤:若元素a和元素b为数组类型数据,则将其子元素分开进行比对,并继续本步骤104)进行递归解析;/n105)遍历判断步骤:遍历数据A中所有元素,进行以上步骤101)至步骤104)的对比,如果数据A中每个元素都在数据B中存在同级且判断相同的,则输出结果为数据A和数据B相同。/n...
【技术特征摘要】
1.服务于网络传媒行业的接口自动化测试断言方法,其特征在于,具体包括如下步骤:
101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL/Empty,则输出结果为数据A和数据B相同;若数据A和数据B只有其中一个为NULL/Empty,则输出结果为数据A和数据B不同;若数据A和数据B都不为NULL/Empty,则继续数据A和数据B的字段数量是否相等,数据A和数据B的字段数量不相等,则输出结果为数据A和数据B不同;数据A和数据B的字段数量相等,则继续判断步骤102);
102)元素简单判断步骤:获取数据A中的第一个元素设为a,在数据B中查找是否存在同名的同级元素:若在数据B中不存在同名的同级元素,则输出结果为数据A和数据B不同,若数据B中存在同名的同级元素,则将数据B中同名的同级元素设为b;
103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,如果元素a和元素b都为基本数据类型,则直接对比,若元素a和元素b不相等,则输出结果数据A和数据B不同,若元素a和元素b相等,则获取数据A的下一个元素,继续上述步骤102)进行元素简单判断;
如果元素a和元素b都为非数组的结构化对象类型:则令数据A...
【专利技术属性】
技术研发人员:邱倩芸,胡忠雨,
申请(专利权)人:华数传媒网络有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。