代码测试的方法及装置制造方法及图纸

技术编号:14849202 阅读:32 留言:0更新日期:2017-03-18 09:11
本发明专利技术公开了一种代码测试的方法及装置,涉及互联网技术领域,为解决测试过程需要搭建外部环境的问题而发明专利技术。本发明专利技术的方法包括:在测试代码中添加自定义函数,自定义函数用于替代外部数据库向被测试函数返回预设的数据内容;执行测试代码,屏蔽被测试函数访问外部数据库的操作并执行自定义函数;向被测试函数返回预设的数据内容;对返回的数据内容进行验证,获得被测试函数的测试结果。本发明专利技术主要应用于脚本类型的测试过程中。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种代码测试的方法及装置
技术介绍
现有测试函数的方法是,编写测试代码构建测试框架,在测试框架中执行被测试函数,对被测试函数的功能进行验证,获得测试结果。有些被测试函数具有访问外部数据库的功能,例如从数据库中读取配置信息,或者向站点服务器请求统一资源定位符(UniformResourceLocator,简称URL)链接等。在对这些功能进行测试时,需要执行函数中实现这些功能的语句,向外部数据库请求相应的数据内容,然后在测试框架内对请求获得的数据内容进行验证(例如判断是否能够成功获取到数据内容,或者获取的数据内容是否正确),得到测试结果。在上述函数测试的过程中专利技术人发现:当测试函数的外部访问功能时,如果使用第三方的真实数据库(例如百度的服务器)进行测试,那么大多数情况下无法获得第三方的授权,因此实际应用中通常需要测试人员自己为测试过程搭建外部环境,例如模仿第三方创建的数据库。一般测试过程访问数据库的次数并不多,而第三方数据库的数据量又十分庞大,因此为测试过程搭建外部环境的方式成本过高,会大大降低测试效率。
技术实现思路
本专利技术提供了一种代码测试的方法及装置,能够解决测试过程需要搭建外部环境的问题。为解决上述问题,一方面,本专利技术提供了一种代码测试的方法,该方法包括:在测试代码中添加自定义函数,自定义函数用于替代外部数据库向被测试函数返回预设的数据内容;执行测试代码,屏蔽被测试函数访问外部数据库的操作并执行自定义函数;向被测试函数返回预设的数据内容;对返回的数据内容进行验证,获得被测试函数的测试结果。另一方面,本专利技术还提供了一种代码测试的装置,该装置包括:添加单元,用于在测试代码中添加自定义函数,自定义函数用于替代外部数据库向被测试函数返回预设的数据内容;执行单元,用于执行测试代码,屏蔽被测试函数访问外部数据库的操作并执行自定义函数;返回单元,用于向被测试函数返回预设的数据内容;验证单元,用于对返回的数据内容进行验证,获得被测试函数的测试结果。本专利技术提供的代码测试的方法及装置,能够在测试代码中添加与外部数据库作用相同的自定义函数。当被测试函数访问外部数据库时,屏蔽被测试函数的访问操作,并执行该自定义函数向被测试函数返回其所请求的数据内容,以便通过对返回数据内容的验证获得被测试函数的测试结果。与现有技术相比,本专利技术能够通过测试框架中自定义的函数向进行外部访问的被测试函数返回需要的数据内容,测试过程不再依赖外部环境实现,因此可以节省搭建外部环境产生的成本。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提供的一种代码测试的方法流程图;图2示出了本专利技术实施例提供的另一种代码测试的方法流程图;图3示出了本专利技术实施例提供的一种代码测试的装置的组成框图;图4示出了本专利技术实施例提供的另一种代码测试的装置的组成框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种代码测试的方法,如图1所示,该方法包括:101、在测试代码中添加自定义函数。本实施例中,需要对被测试函数的外部访问功能进行测试,外部访问主要是指对测试框架之外的其他主体(服务器、平台等)的数据库请求数据。为达到测试外部访问功能的目的,本实施例在测试代码中添加了自定义函数。该自定义函数用于替代外部数据库向被测试函数返回预设的数据内容,进而达到测试外部访问功能的目的。由于在测试代码中增加了自定义函数,因此在进行外部访问时,无需真正访问外部数据库,而是对自定义函数进行调用,获得自定义函数返回的数据内容。102、执行测试代码,屏蔽被测试函数访问外部数据库的操作并执行自定义函数。在写好测试脚本后,对测试脚本进行编译,按照预编辑的测试用例对被测试函数进行执行和测试。当执行到外部访问的语句代码时,按照该语句代码的内容,此时需要访问外部数据库获取数据内容。而在本实施例中,由于无需搭建外部环境,因此不需要被测试函数真正访问外部数据库;但同时又需要被测试函数获得外部环境中的数据内容,因此可以屏蔽被测试函数访问外部数据库的操作,以禁止其访问外部数据库,并且执行自定义函数,响应被测试函数的访问请求,返回其所请求的数据内容。本实施例中,自定义函数中的数据内容可以按照外部数据库中的内容进行定义,也可以根据自身的测试需求进行自定义。对于前者方式,为实现测试框架的轻量化设计,可以仅定义少量数据内容,而无需将外部数据库中的内容全部写入自定义函数中。103、向被测试函数返回预设的数据内容。执行自定义函数后,向被测试函数返回其所请求的数据内容,以便执行步骤104,通过对返回内容的验证获得外部请求功能的测试结果。104、对返回的数据内容进行验证,获得被测试函数的测试结果。所谓验证包括但不限于:是否能够成功返回数据内容、返回的数据内容与访问请求所要求获取的数据内容是否一致。示例性的,当被测试函数请求一个URL“hao.360.cn/?src=lm&ls=n0b9f6f3992”时,自定义函数返回“360导航页”的超文本标记语言(HyperTextMarkupLanguage,简称HTML)源代码,可以据此确定外部访问功能正常;或者,当被测试函数请求获取一段配置信息时,自定义函数返回了相对应的配置信息,则可以据此确定外部访问功能正常。需要说明的是,实际应用中自定义函数中的数据内容也可以是抽象的,例如对应上述URL的数据内容可以不是真实的HTML源代码,而是一个内容上无具体含义的字符串。在编写自定义函数时,需要对访问请求与抽象数据内容之间的关联关系进行设定,以便于在本文档来自技高网...

【技术保护点】
一种代码测试的方法,其特征在于,所述方法包括:在测试代码中添加自定义函数,所述自定义函数用于替代外部数据库向被测试函数返回预设的数据内容;执行所述测试代码,屏蔽所述被测试函数访问所述外部数据库的操作并执行所述自定义函数;向所述被测试函数返回预设的数据内容;对返回的数据内容进行验证,获得所述被测试函数的测试结果。

【技术特征摘要】
1.一种代码测试的方法,其特征在于,所述方法包括:
在测试代码中添加自定义函数,所述自定义函数用于替代外部数据库
向被测试函数返回预设的数据内容;
执行所述测试代码,屏蔽所述被测试函数访问所述外部数据库的操作
并执行所述自定义函数;
向所述被测试函数返回预设的数据内容;
对返回的数据内容进行验证,获得所述被测试函数的测试结果。
2.根据权利要求1所述的方法,其特征在于,在所述在测试代码中添
加自定义函数之前,所述方法进一步包括:
将所述外部数据库中的数据内容封装到所述自定义函数中。
3.根据权利要求2所述的方法,其特征在于,所述在测试代码中添加
自定义函数,包括:
对所述测试代码的全局表进行表替换,将所述自定义函数添加到所述
全局表中。
4.根据权利要求3所述的方法,其特征在于,所述对所述测试代码的
全局表进行表替换,将所述自定义函数添加到所述全局表中,包括:
将所述全局表中的外部访问函数替换为所述自定义函数,并将所述外
部访问函数的函数名作为所述自定义函数在所述全局表中的函数名使用;
其中,所述外部访问函数用于访问所述外部数据库。
5.根据权利要求4所述的方法,其特征在于,所述执行所述测试代码,
屏蔽所述被测试函数访问所述外部数据库的操作并执行所述自定义函数,
包括:
根据所述被测试函数的访问语句,在所述全局表中查找所述外部访问
函数的函数名;
...

【专利技术属性】
技术研发人员:艾菲
申请(专利权)人:北京奇虎科技有限公司北京奇安信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1