一种SDNS接口自动化测试系统和方法与流程

文档序号:13072593阅读:130来源:国知局
一种SDNS接口自动化测试系统和方法与流程
本发明属于软件自动化测试
技术领域
,具体涉及一种sdns接口自动化测试系统和方法。
背景技术
:sdns(securedns)云服务作为稳定、安全的域名解析服务平台,为用户提供了方便、简单、易用的操作界面,降低了用户使用门槛。同时sdns为渠道服务商提供了相同功能的rest接口服务,而接口服务的测试一般都需要开发本地代理(客户端)模拟对服务的调用,并解析和检查服务器返回的内容。这类现有测试技术通常有如下缺点:a、自由框架编写用例调试不便,后续拓展封装方法需要不断维护。b、对测试人员有开发编码需求,技能要求高。c、测试工具使用受限,导致测试深度不够。d、输出响应结果缺乏直观准确的检查手段。e、测试通用性较差,需要针对不同业务调整编码。为了克服这类测试的上述缺点,需要提供能够快速实施、通用性强、适用于各业务接口的自动化测试系统和方法。技术实现要素:至少为了部分克服现有测试技术中的上述缺点,本发明提出了以下技术方案。根据本发明的sdns接口自动化测试系统,包括:主流程控制模块,用于读取测试配置文件,基于该测试配置文件的内容获取待测sdns接口的接口测试用例的描述文件和接口测试数据的指定路径,基于该指定路径下的接口测试用例的描述文件和接口测试数据执行sdns接口调用并获取实际调用结果,且发出指令;服务监控模块,其与主流程控制模块连接,用于根据主流程控制模块发出的服务监控指令发起服务监控以获取服务监控结果数据并保存;期望结果模块,其与主流程控制模块连接,且存储了执行sdns接口调用的期望调用结果,用于将实际调用结果与期望调用结果进行比对而得到自动化测试结果,并输出自动化测试结果;生成报告模块,其与主流程控制模块连接,用于根据主流程控制模块发出的生成报告指令并且基于自动化测试结果生成测试报告。根据本发明的自动化测试系统,还包括:汇总数据模块,其与主流程控制模块连接,用于根据主流程控制模块发出的汇总数据指令发起针对服务监控结果数据的数据汇总以汇总数据。根据本发明的自动化测试系统,还包括:邮件通信模块,其与期望结果模块连接,用于向根据自动化测试结果选择的不同收件人发送邮件,以通知必要收件人。根据本发明的自动化测试系统,还包括:测试用例产生模块,用于通过设定有效变量、断言和线程来调试待测sdns接口的接口测试用例,并且将调试通过后的待测sdns接口的接口测试用例的描述文件和接口测试数据导出到指定路径。根据本发明的自动化测试系统,其中的测试用例产生模块是jmeter-gui模块,接口测试用例的描述文件是jmx文件。根据本发明的自动化测试方法,用于上文描述的自动化测试系统,包括以下步骤:主流程控制模块读取测试配置文件,基于该测试配置文件的内容获取待测sdns接口的接口测试用例的描述文件和接口测试数据的指定路径,基于该指定路径下的接口测试用例的描述文件和接口测试数据执行sdns接口调用并获取实际调用结果,且发出指令;服务监控模块根据主流程控制模块发出的服务监控指令发起服务监控以获取服务监控结果数据并保存;期望结果模块将实际调用结果与期望调用结果进行比对而得到自动化测试结果,并输出自动化测试结果;生成报告模块根据主流程控制模块发出的生成报告指令并且基于自动化测试结果生成测试报告。根据本发明的自动化测试方法,还包括以下步骤:汇总数据模块根据主流程控制模块发出的汇总数据指令发起针对服务监控结果数据的数据汇总以汇总数据。根据本发明的自动化测试方法,还包括以下步骤:邮件通信模块向根据自动化测试结果选择的不同收件人发送邮件,以通知必要收件人。根据本发明的自动化测试方法,还包括以下步骤:测试用例产生模块通过设定有效变量、断言和线程来调试待测sdns接口的接口测试用例,并且将调试通过后的待测sdns接口的接口测试用例的描述文件和接口测试数据导出到指定路径。相比现有的测试技术方案,本发明的优点在于:1)能够结合持续集成环境,自动执行测试用例和生成测试报告。2)支持录制形式的gui界面,入手相对简单,只需维护测试数据文件,从而降低了测试成本,提高了测试效率。3)能够设置预期结果比对功能,将待测接口输入的预期响应结果和实际结果进行自动化比对,提高了测试控制精度与准确性。4)能够快速实施,通用性强,适用于各种业务接口的自动化测试。附图说明通过阅读下文具体实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出具体实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是根据本发明的实施例的自动化测试系统的框图。图2是根据本发明的实施例的自动化测试方法的流程图。具体实施方式下面将参照附图更详细地描述本发明的示例性实施方式。虽然附图中显示了本发明的示例性实施方式,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。图1是根据本发明的实施例的自动化测试系统的框图。根据本发明的sdns接口自动化测试系统,包括图1所示的主流程控制模块、服务监控模块、期望结果模块和生成报告模块四个基本模块。图1所示的主流程控制模块,用于读取测试配置文件,基于该测试配置文件的内容获取待测sdns接口的接口测试用例的描述文件和接口测试数据的指定路径,基于该指定路径下的接口测试用例的描述文件和接口测试数据执行sdns接口调用并获取实际调用结果,且发出指令。例如,主流程控制模块负责读取和解析测试配置文件内容,通过配置文件获取待测接口用例描述文件和所在路径,发出关于监控及获取关键日志信息、执行汇总、提取和清理统计结果、根据系统特征配置参考期望对比、生成报告模板和指定报告接收人等各种指令。图1所示的服务监控模块,其与主流程控制模块连接,用于根据主流程控制模块发出的服务监控指令发起服务监控以获取服务监控结果数据并保存。例如,服务监控模块采用以下方式获取服务监控结果数据:在服务器资源收集方面,选用nmon监控工具,可以后台收集服务运行结果并将其保存到文件。更具体地,例如,可以统计磁盘io、cpu和文件句柄(fd)的占用率信息。并且可以针对对应的汇总项设置警告峰值,方便进行告警通知。假设每个用例测试m分钟,所以只需要监控60×m秒,每n秒监控一次并且保存监控结果,直到探测到本次测试用例操作完成。可以在操作完成后的预留缓冲时间之后再读取所保存的结果文件,获取有用的信息供汇总模块调用。图1所示的期望结果模块,其与主流程控制模块连接,且存储了执行sdns接口调用的期望调用结果,用于将实际调用结果与期望调用结果进行比对而得到自动化测试结果,并输出自动化测试结果。例如,实际调用结果与期望调用结果之间的比较可以采用以下方法。考虑到sdns测试系统测试通过的标志是对应节点服务器查询返回期望输出,因此可以设置两种对比模式:1)选择通过与标准参考服务器的输出响应比对或者通过设置输出期望数据文件比对;2)结合节点响应标识位(如tc、aa、qr、qname、qtype、qclass等位),并且通过期望文件路径找到对应期望结果,进行逐字段值比对。可选择地,能够采用以下方法输出自动化测试结果。例如,在对比结果通过(例如,通过逐字段值比对,结果一致)时,返回响应标识位摘要内容;在不通过时,筛选出异常条目归档,将本次执行情况标记为未通过(false),并且针对错误标识位生成可供直接定位的未通过列表(falselist)文件,方便调整对应的测试用例文件。图1所示的生成报告模块,其与主流程控制模块连接,用于根据主流程控制模块发出的生成报告指令并且基于自动化测试结果生成测试报告。可选择地,能够采用以下方法生成测试报告。例如,根据jmeter.properties配置文件,选择是生成默认测试报告或自定义测试报告;结合接口所对应的业务需求,对接口性能指标进行个性化的自定义设置,通过标准和报告输出格式根据自定义设置生成。可选择地,根据本发明的自动化测试系统,还包括图1所示的汇总数据模块,其与主流程控制模块连接,用于根据主流程控制模块发出的汇总数据指令发起针对服务监控结果数据的数据汇总以汇总数据。例如,汇总数据模块可以收集关于本次服务的执行情况的汇总数据。例如,所汇总的数据可以包括每个用例对应的总请求数、每秒事务量(tps)的平均值、平均响应时间及请求失败率和监控信息cpu、io和fd。汇总数据的数据文件可以保留在本地,在需要时可以手动查阅。可选择地,根据本发明的自动化测试系统,还包括图1所示的邮件通信模块,其与期望结果模块连接,用于向根据自动化测试结果选择的不同收件人发送邮件,以通知必要收件人。可选择地,在统计本次自动化测试结果后,筛选邮件接收者。例如,若测试例全部通过,则将测试报告同时发送给研发人员和测试人员;若有失败,则仅发送给测试人员,测试人员确认并做出调整;若经测试人员调整后的测试用例仍为失败,则测试报告仅发送给研发人员,研发人员再进行确认并做出调整。可选择地,根据本发明的自动化测试系统,还包括测试用例产生模块,用于通过设定有效变量、断言和线程来调试待测sdns接口的接口测试用例,并且将调试通过后的待测sdns接口的接口测试用例的描述文件和接口测试数据导出到指定路径。在使用测试用例产生模块调试待测接口的测试用例、以产生符合要求的接口测试用例的描述文件时,需要考虑如表1所示的待测接口的基本rest规则和如表2所示的变量:表1方法目的http-post创建一个客户对象http-get验证客户对象的创建http-put验证客户对象的修改http-delete验证客户对象已被删除表2可选择地,根据本发明的自动化测试系统,其中的测试用例产生模块是图1所示的jmeter-gui模块,接口测试用例的描述文件是jmx文件。可选择地,根据接口将与接口测试用例的描述文件对应的模块保存于分级目录中,主流程控制模块控制脚本直接调用,搜索遍历指定目录下的测试用例。定义脚本执行的上限时间,若在上限时间内未完成,直接杀掉进入下次循环,输出告警信息供gui调试。例如,在使用jmeter时可以使用下列命令来将接口测试用例数据的描述文件遍历导出至指定目录。$jmeter_home/bin/jmeter-n-t$zonepath${i}.jmx>>log/${casename}.txt&针对上文描述的自动化测试系统,提出了相应的自动化测试方法。图2是根据本发明的实施例的自动化测试方法的流程图。根据本发明的自动化测试方法,包括如图2所示的步骤中的以下四个基本步骤:主流程控制模块读取测试配置文件,基于该测试配置文件的内容获取待测sdns接口的接口测试用例的描述文件和接口测试数据的指定路径,基于该指定路径下的接口测试用例的描述文件和接口测试数据执行sdns接口调用并获取实际调用结果,且发出指令(对应于图2中的“读取测试用例”步骤)。服务监控模块根据主流程控制模块发出的服务监控指令发起服务监控以获取服务监控结果数据并保存(对应于图2中的“执行及监控”步骤)。期望结果模块将实际调用结果与期望调用结果进行比对而得到自动化测试结果,并输出自动化测试结果(对应于图2中的“统计结果及期望对比”步骤)。生成报告模块根据主流程控制模块发出的生成报告指令并且基于自动化测试结果生成测试报告(对应于图2中的“分析结果,生成报告”步骤)。可选择地,根据本发明的自动化测试方法,还包括以下步骤:在服务监控模块根据主流程控制模块发出的服务监控指令发起服务监控以获取服务监控结果数据并保存之后,汇总数据模块根据主流程控制模块发出的汇总数据指令发起针对服务监控结果数据的数据汇总以汇总数据(在图2中未示出)。可选择地,根据本发明的自动化测试方法,还包括以下步骤:在主流程控制模块执行对应于图2中的“读取测试用例”的步骤之前,测试用例产生模块通过设定有效变量、断言和线程来调试待测sdns接口的接口测试用例,并且将调试通过后的待测sdns接口的接口测试用例的描述文件和接口测试数据导出到指定路径(对应于图2中的“gui调试接口”步骤、“导出有效用例”步骤)。可选择地,根据本发明的自动化测试方法,还包括以下步骤:在生成报告模块执行对应于图2中的“分析结果,生成报告”步骤之后,邮件通信模块向根据自动化测试结果选择的不同收件人发送邮件,以通知必要收件人(对应于图2中的“邮件通知”步骤)。为了使本领域技术人员更清楚地了解本发明的自动化测试方法,下面将结合jmeter-gui的使用和图2来描述自动化测试方法的示例实施方法中的可选步骤。1)在jmeter-gui上设计接口用例(对应于图2中的“gui调试接口”步骤),通过设定有效变量和相应断言及线程,调试通过导出jml数据用例文件(对应于图2中的“导出有效用例”步骤);2)调用主流程控制模块,清理上次执行结果,获取数据用例文件(对应于图2中的“读取测试用例”步骤);3)调用监控和执行模块,开始执行测试(对应于图2中的“执行及监控”步骤);4)可选择地,调用汇总数据模块,获取用例执行情况及关键日志(在图2中未示出);5)调用期望结果模块进行统计结果和期望比对(对应于图2中的“统计结果及期望对比”),对于每一个接口用例,在对比结果通过时,调用生成报告模块统计测试情况及对比期望,分析结果,生成测试报告(对应于图2中的“分析结果,生成报告”),在对比结果没有通过时,返回步骤1)。可选地,调用期望结果模块对一个有效用例进行统计结果和期望比对,在对比结果通过时,保存对比结果,其后进行下一个有效用例的统计结果和期望比对,在对比结果没有通过时,返回步骤1),其后进行下一个有效用例的统计结果和期望比对。当全部有效用例执行完毕,调用生成报告模块统计总测试情况及对比期望,分析结果,生成测试报告(对应于图2中的“分析结果,生成报告”)。6)调用邮件通信模块,根据项目执行情况,发送指定用户报告邮件(对应于图2中的“邮件通知”步骤)。7)集成ci部署,一键实施(对应图2中的“ci一键执行”步骤)。根据本发明的上述自动化测试系统和方法,具有以下优点:1)基于ci持续部署,界面简单直观,对于频繁的版本迭代,可以一键完成测试用例的遍历回归,提高了测试效率。2)还原真实手工测试场景,操作步骤同手工测试一致,有效保障云解析sdns接口的正确性。3)单个接口采用独立分支控制,随时调整接口输入,降低了自动化测试后期维护难度。4)通过调整线程和请求数,可以满足对接口性能的校验。5)适用广泛,针对sdns不同业务需求,只需要调整对应接口断言,导出相应测试用例,自动化测试方法和系统不需要重新设计和修改。6)实现了基于模块化的自动化测试设计。操作执行模块、服务监控模块和汇总报告模块结合总控启动模块协同完成,真正实现了一键执行的自动化测试。7)还原手工操作的测试用例设计,提高了覆盖有效性和后期可维护性。8)自动比对预设结果的汇总设计。查询有效接口的输入结果,将其与参考服务器的响应结果或预设期望结果进行自动化对比。9)自定义概要详情的html报告设计。包括测试通过的定义、成功/失败统计、平均请求及相应和通过率的描述方式。以上所述,仅为本发明示例性的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1