CN1277186C - 软件接口测试方法 - Google Patents

软件接口测试方法 Download PDF

Info

Publication number
CN1277186C
CN1277186C CN 200310121900 CN200310121900A CN1277186C CN 1277186 C CN1277186 C CN 1277186C CN 200310121900 CN200310121900 CN 200310121900 CN 200310121900 A CN200310121900 A CN 200310121900A CN 1277186 C CN1277186 C CN 1277186C
Authority
CN
China
Prior art keywords
test
interface
function
testing
case file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200310121900
Other languages
English (en)
Other versions
CN1632747A (zh
Inventor
刘业欣
陈琳
王兴楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN 200310121900 priority Critical patent/CN1277186C/zh
Publication of CN1632747A publication Critical patent/CN1632747A/zh
Application granted granted Critical
Publication of CN1277186C publication Critical patent/CN1277186C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种软件接口测试方法,包括:调用XML形式编写的软件接口测试所用测试用例文件,对该测试用例文件进行XML解析;按照解析后的测试用例文件格式顺序获取一个测试接口的函数名;根据测试接口的函数名和函数指针的对应关系,获取该测试接口的函数指针;根据测试接口函数指针调用测试接口函数,通过该测试接口函数对测试用例文件中当前测试接口对应的参数进一步进行XML解析;最后,将解析后测试用例文件中当前测试接口对应的参数输入测试接口函数进行测试;将当前测试接口测试结果输出,返回进行下一个软件接口的测试。本发明方案提高了软件接口测试的通用性、可靠性,方便用户的使用。

Description

软件接口测试方法
技术领域
本发明涉及计算机软件测试技术,特别是指一种软件接口测试方法。
背景技术
随着可扩展标记语言(XML)技术不断成熟,它的应用也越来越广泛。XML的数据格式表达能力很强,几乎所有的数据结构都可以用XML的形式表达出来,可以在任何平台上采用XML语言进行程序开发。另外,XML还有一个很重要的特性就是数据和显示分离,即显示给用户的是文档形式,而内部则可以是数据形式。
软件测试是软件工程中非常重要的一个环节,而软件接口的测试是软件测试中十分重要的部分,它在单元测试和集成测试中都有应用,只有保证接口的稳定性,才能保证整个软件程序的稳定性。但是现在进行软件接口测试时,往往都是测试人员自行写测试程序来进行测试。由于测试用例文件和测试代码等编写的复杂性,所以测试人员在进行软件接口测试时,往往感到非常的困难,不但时间花的很长,而且还不一定达到很好的效果。
因而,现有技术中根据软件接口测试中的一些共同点,尝试提出了一些通用的软件接口测试方案。针对某一类软件接口测试的共同特点,将测试过程中所必须的操作步骤进行整合,这样进行软件接口测试时,软件测试人员只需针对需要测试的软件接口编写测试用例文件和少量接口测试函数就可以完成测试。但是由于软件接口测试的种类较多,特别是软件开发所基于的平台不同,因此现有的软件接口测试方案的通用性和灵活性不够好,无法跨平台使用;另外,由于现有技术中进行测试用例文件编写时,测试用例文件的设计文档通常采用文档形式,测试用例文件的测试代码则必须采用数据格式编写,二者之间格式不统一,当测试用例文件内部设计文档和测试代码之间出现不匹配等错误时,很难被发现,特别是测试代码本身也会出现错误,而由于测试代码采用数据格式,测试人员很难进行检查从中发现错误,从而影响软件接口测试的可靠性。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件接口测试方法,提高软件接口测试的通用性、可靠性,方便用户的使用。
一种软件接口测试方法,包括以下步骤:
a)调用XML形式编写的软件接口测试所用的测试用例文件,对该测试用例文件进行XML解析;
b)按照解析后的测试用例文件格式顺序获取一个测试接口的函数名,该测试接口作为当前测试接口;
c)根据步骤b)所获取的测试接口的函数名和函数指针的对应关系,获取该测试接口的函数指针;
d)根据步骤c)获取的测试接口函数指针调用测试接口函数,通过该测试接口函数对测试用例文件中当前测试接口对应的参数进一步进行XML解析;
e)将步骤d)解析后测试用例文件中当前测试接口对应的参数输入步骤d)获得的测试接口函数进行测试;
f)将当前测试接口的测试结果输出,判断当前测试用例文件是否还有未测试的测试接口函数,如果是,则返回步骤b),否则,进入步骤g);
g)判断是否还有剩余测试用例文件,如果是,则返回步骤a),否则,结束流程。
该方法预先建立测试接口函数名和测试接口函数指针的对应表,则步骤c)具体包括:根据步骤b)获得的当前测试接口的函数名,通过查询测试接口函数名和测试接口函数对应表,获取当前测试接口的函数指针。
该方法步骤a)所述XML解析为利用XML解析器进行XML解析。
该方法步骤f)所述输出包括:实际输出参数值,以及期望输出参数值和实际输出参数值的比较结果。
该方法步骤f)所述输出进一步包括:对每个软件接口检测的起始时间、输入参数值和检测结束时间。
从上面所述可以看出,本发明提供的软件接口测试方法中软件接口的测试用例文件采用XML格式进行编写,并自动完成测试用例文件和接口测试函数的调用,可以进行各种平台下的软件接口测试,提高了软件接口测试的通用性;并且通过巧妙利用XML的数据和显示分离特性,统一了测试用例文件中设计文档和测试代码,解决了二者之间匹配问题,并更便于测试人员对测试用例文件进行检查,提高了软件接口测试的可靠性;同时通过自动完成测试用例文件和接口测试函数调用,大大简化了测试人员的工作量,使软件接口测试更加方便。
附图说明
图1为本发明软件接口测试总体结构框图;
图2为本发明软件接口测试流程图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明提供了测试程序的整体框架,测试人员只需针对需要测试的软件接口设计接口测试函数,并采用XML语言格式编写测试用例文件。然后可利用本发明方案自动调用XML形式编写的软件接口测试所用测试用例文件,对该测试用例文件进行XML解析;按照解析后的测试用例文件格式顺序获取一个测试接口的函数名;根据测试接口的函数名和函数指针的对应关系,获取该测试接口的函数指针;根据测试接口函数指针调用测试接口函数,通过该测试接口函数对测试用例文件中当前测试接口对应的参数进一步进行XML解析;最后,将解析后测试用例文件中当前测试接口对应的参数输入测试接口函数进行测试;将当前测试接口测试结果输出,并返回按照测试用例文件的要求进行下一个软件接口的测试。
根据本发明方案进行软件接口测试的过程,可参见图1所示:
首先,准备软件接口测试所用的测试用例文件和软件接口测试函数集。
步骤101,利用提供的用于读入参数、比较参数和写日志的应用编程接口(API,Application Programming Interface),针对每个待测试的软件接口,编写用于每个软件接口测试的接口测试函数,并将所有接口测试函数组成函数集。
编写过程中测试人员可以不需要考虑测试用例,只要明确测试的对象即可,对每一个需要测试的接口创建一个函数。该函数主要负责完成从测试用例文件读入输入参数值和期望的输出参数值,并对XML形式编写的测试用例文件进行进一步XML解析,另外还可以进一步将实际输出参数值与期望的输出参数值进行比较,把比较结果写入日志文件。
步骤102,软件接口函数集建立完成后,建立软件接口的测试函数名称和相应接口测试函数的对应表。对应表中规定接口测试函数名和接口测试函数指针的对应关系。
步骤103,利用XML语言编写测试用例文件。
测试用例文件用于为软件接口的整个测试程序提供具体的测试参数,其中应包含有测试的接口名和具体的测试内容等。测试用例文件可以是对一个接口进行测试,也可以对多个接口进行测试。利用XML语言数据和显示分离的特性,用户只要用XML完成一个测试用例文件,就可以得到相应的数据形式的测试用例代码,并同时利用可扩展样式语言转换(XLST)技术,直接在浏览器上查看到文档形式的测试用例文档。
其中,本步骤103也可以与步骤101并行处理,或先进行步骤103编写测试用例文件,再进行步骤101编写软件接口测试函数集也可。
本发明编写测试用例文件使用的XML格式如下:
<TestCases loop=″1″>是这个XML文件的根节点。其中它具有一个属性loop来指定整个用例执行的次数,默认值是″1″。其下节点包括:
<Comment>是整个测试用例文件的注释,来描述这个测试用例文件的用途。
<Initialize>是在执行每一个具体用例之前可能需要做一些初始化工作,这些工作是这个节点下完成的。
<Exit>是在执行完所有用例之后可能需要做一些收尾工作,这些工作是这个节点下完成的。
<TestCase name=″DM001″sleep=″0″loop=″2″tempreset=″true″>是具体每一个用例的实现节点。属性name是这个用例的名称或者是编号;属性sleep是用于指定执行完该用例之后需要等待的时间,其单位为毫秒,如果值是″-1″表示必须等待用户确认才能继续执行后面的用例;属性loop是用于指定执行这个用例循环次数,默认值是″1″;属性tempreset是用于指定在执行该用例之前是否清除所有的临时变量。
<Function name=″Test_B_RentService″sleep=″0″loop=″1″fault=″continue″>就是完成测试接口调用的节点。它可以是<Initialize>,<Exit>,<TestCase>子节点。属性name是测试函数的名称;属性sleep是用于执行完该测试函数之后需要等待的时间,其单位为毫秒,如果值是″-1″表示必须等待用户确认才能继续执行后面的测试函数;属性loop是用于指定执行该测试函数的循环次数,默认值是″1″;属性fault是用于指定如果测试函数的测试相应的接口的结果不正确是否还继续往下执行,″exit″表示直接退出,″continue″表示忽略错误,继续执行。
<IN>节点包含的是被测试的接口需要的输入参数值。
<OUT>节点包含的是被测试的接口需要的期望输出参数值。
<Parameter name=″RC″type=″string″encoding=″text″valuetype=″fixed″compare=″e″load=″2″save=″3″>是用来给参数的赋值的节点。属性name是测试接口需要的参数的名称;属性type是测试接口需要的参数的类型,其中,″string″为字符串类型;″int″为整型数字类型;″struct″表示结构类型;″null″表示空指针类型;属性encoding是该节点内容作为参数的值的一种编码方式,其中,″text″表示内容是可打印的文本串;″hex″表示用16进制的ASCII码来表示一个二进制数据;″file″表示数据是从节点内容指定的文件里取出;属性valuetype是参数的值的类型,其中,″fixed″表示此值唯一;″floating″表示此值是变化的;″optional″表示此值不唯一,但却是有限的几个值;属性compare是指定实际的结果和期望的结果的比较方式,其中,″e″表示做相等比较;″le″表示做小于等于比较;属性load和save在本发明中用来传递两个测试接口之间的参数值,load和save的值的意义表示临时变量单元号。在传递参数时,首先把值save到某个单元号里,当使用这个值时,只要load同样的单元号就可以把值取出来。
<Value>是当<Parameter>节点的属性valuetype为″optional″时用于赋予参数多个可能值的节点。
步骤104,用于软件接口测试的测试用例文件和接口函数集编写完成以后,即可进行软件接口测试。
该测试流程参见图2所示:
步骤201,从测试用例工程文件中调用测试用例文件,并用XML解析器对测试用例文件进行XML解析。
步骤202,从解析后的测试用例文件中根据测试用例文件的格式获取一个测试接口的函数名。
这里,由于测试用例文件通常是对多个接口进行测试,因此一般是按照测试用例文件的格式顺序获取测试接口的函数名,其中,一个测试接口对应一个函数名。
步骤203,在测试接口函数名和函数的对应表中查询并获取当前测试接口的函数指针。
步骤204,根据获取的当前测试接口函数指针从测试接口函数集中调用测试接口函数,通过该测试接口函数对当前测试接口对应的测试用例文件中相应部分进一步进行XML解析。
步骤205,将解析后的当前测试接口对应的测试用例文件输入至测试接口函数,进行测试。
步骤206,将当前测试接口的测试结果输出,判断当前测试用例文件是否还有需要测试的接口函数,如果是,则返回步骤202,否则,进入步骤207。
本步骤中对于某些复杂的测试用例,如果需要在多个接口之间传递参数的值,可以按测试用例的要求将某个接口的接口函数输出参数进行暂时保存,当调用下一个接口函数进行测试时,将保存的参数作为接口函数的一个输入值,输入至该下一个接口函数中进行测试,如此可以实现在多个接口之间传递参数的值,以便满足复杂的测试用例的要求。
步骤207,判断测试用例工程文件中是否还有剩余测试用例文件,如果是,则返回步骤201,否则,结束当前流程。
步骤105,测试程序执行完后,可生成相应的日志文件。测试日志内容包括:每个软件接口测试的起始时间、输入参数值、期望输出结果、每个软件接口测试的结束时间、实际输出结果、以及实际输出结果和期望输出结果的比较结果。这些信息都为事后的作统计分析提供了基础数据,也同测试用例文件相类似,日志文件也可以直接用浏览器进行查看。此后,测试人员既可以对测试结果进行人工分析,也可以利用SDK进一步编写测试结果的统计分析程序,以便对大量的测试结果进行评估。
在本发明方案中测试人员针对软件测试接口编写的测试用例文件和测试接口函数只作为整个程序的一个模块,模块之间的调用关系都可自动实现,自动完成从测试用例文件中读入需要的输入参数和期望的输出参数。这样简化了测试人员开发的测试程序的工作量,并减少了测试程序本身问题出现的机会。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1、一种软件接口测试方法,其特征在于,包括以下步骤:
a)调用可扩展标记语言XML形式编写的软件接口测试所用的测试用例文件,对该测试用例文件进行XML解析;
b)按照解析后的测试用例文件格式顺序获取一个测试接口的函数名,该测试接口作为当前测试接口;
c)根据步骤b)所获取的测试接口的函数名和函数指针的对应关系,获取该测试接口的函数指针;
d)根据步骤c)获取的测试接口函数指针调用测试接口函数,通过该测试接口函数对测试用例文件中当前测试接口对应的参数进一步进行XML解析;
e)将步骤d)解析后测试用例文件中当前测试接口对应的参数输入步骤d)获得的测试接口函数进行测试;
f)将当前测试接口的测试结果输出,判断当前测试用例文件是否还有未测试的测试接口函数,如果是,则返回步骤b),否则,进入步骤g);
g)判断是否还有剩余测试用例文件,如果是,则返回步骤a),否则,结束流程。
2、根据权利要求1所述方法,其特征在于,预先建立测试接口函数名和测试接口函数指针的对应表,则步骤c)具体包括:根据步骤b)获得的当前测试接口的函数名,通过查询测试接口函数名和测试接口函数对应表,获取当前测试接口的函数指针。
3、根据权利要求1所述方法,其特征在于,步骤a)所述XML解析为利用XML解析器进行XML解析。
4、根据权利要求1所述方法,其特征在于,步骤f)所述输出包括:实际输出参数值,以及期望输出参数值和实际输出参数值的比较结果。
5、根据权利要求4所述方法,其特征在于,步骤f)所述输出进一步包括:对每个软件接口检测的起始时间、输入参数值和检测结束时间。
CN 200310121900 2003-12-22 2003-12-22 软件接口测试方法 Expired - Fee Related CN1277186C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200310121900 CN1277186C (zh) 2003-12-22 2003-12-22 软件接口测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200310121900 CN1277186C (zh) 2003-12-22 2003-12-22 软件接口测试方法

Publications (2)

Publication Number Publication Date
CN1632747A CN1632747A (zh) 2005-06-29
CN1277186C true CN1277186C (zh) 2006-09-27

Family

ID=34844330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200310121900 Expired - Fee Related CN1277186C (zh) 2003-12-22 2003-12-22 软件接口测试方法

Country Status (1)

Country Link
CN (1) CN1277186C (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100361082C (zh) * 2005-08-26 2008-01-09 北京中星微电子有限公司 一种含指针参数的函数在不同运行平台间调用的方法
CN100458703C (zh) * 2005-08-26 2009-02-04 北京中星微电子有限公司 一种跨平台函数调用系统
CN100458702C (zh) * 2005-08-26 2009-02-04 北京中星微电子有限公司 一种不同运行平台间的函数调用的方法
CN1952818B (zh) * 2005-10-22 2010-12-15 康佳集团股份有限公司 自动检验测试结果的程序单元测试方法
CN100363906C (zh) * 2006-02-28 2008-01-23 华为技术有限公司 一种软件单元的测试方法
CN100444127C (zh) * 2006-12-12 2008-12-17 北京中星微电子有限公司 软件测试系统和软件测试方法
CN101488085A (zh) * 2008-01-17 2009-07-22 中兴通讯股份有限公司 软件接口测试方法和装置
CN101650655A (zh) * 2009-09-07 2010-02-17 苏州瀚瑞微电子有限公司 芯片测试数据的分析方法
CN101699409B (zh) * 2009-09-30 2011-09-14 深圳市普联技术有限公司 一种控制测试设备进行测试的方法和系统
CN101944026B (zh) * 2010-09-21 2013-01-02 中国人民解放军63961部队 一种通用虚拟仪器接口实现方法
CN101944062B (zh) * 2010-09-21 2013-01-23 中国人民解放军63961部队 一种通用虚拟仪器接口配置方法
CN101980173A (zh) * 2010-11-03 2011-02-23 北京世纪高通科技有限公司 系统集成测试的方法及装置
CN103778052B (zh) * 2012-10-17 2017-12-19 百度在线网络技术(北京)有限公司 一种前端javascript代码的测试方法和装置
CN102999329B (zh) * 2012-11-05 2016-01-20 浙江吉利汽车研究院有限公司杭州分公司 基于可扩展标记语言映射配置的活动目录接口开发方法
CN103049378A (zh) * 2012-12-18 2013-04-17 惠州市亿能电子有限公司 一种无需仿真器的程序调试方法
CN104035859B (zh) * 2013-03-07 2018-03-27 腾讯科技(深圳)有限公司 一种可视化自动测试方法及其系统
CN104360920B (zh) * 2014-12-02 2018-06-26 微梦创科网络科技(中国)有限公司 一种接口自动化测试方法及装置
CN104615534B (zh) * 2015-01-28 2017-08-01 广州酷狗计算机科技有限公司 接口测试方法和装置
CN106547684A (zh) * 2015-09-22 2017-03-29 腾讯科技(深圳)有限公司 一种应用程序的测试方法、测试装置及移动终端
CN105139892B (zh) * 2015-09-23 2018-01-26 浪潮(北京)电子信息产业有限公司 一种应用于存储产品的数据驱动测试方法及系统
CN105138461B (zh) * 2015-09-23 2018-01-26 网易(杭州)网络有限公司 一种应用程序的接口测试方法及装置
CN105528294B (zh) * 2015-12-29 2018-05-25 广东金赋科技股份有限公司 一种接口测试用例自动生成的方法及系统
CN106021111A (zh) * 2016-05-30 2016-10-12 上海携程商务有限公司 接口测试方法及系统
CN107562614A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 接口设置方法、服务管理方法、服务执行方法及其设备
CN107608873B (zh) * 2016-07-11 2021-05-25 珠海优特电力科技股份有限公司 软件测试方法和系统及测试平台
CN106598851A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 软件接口测试方法及系统
CN106502916A (zh) * 2016-12-05 2017-03-15 广州唯品会信息科技有限公司 软件测试方法及系统
CN107247665B (zh) * 2017-05-18 2020-06-26 北京信安世纪科技股份有限公司 一种c接口函数的测试方法及系统
CN107329861B (zh) * 2017-06-12 2020-12-22 奇安信科技集团股份有限公司 一种多接口测试方法及装置
CN107992421A (zh) * 2017-12-07 2018-05-04 畅捷通信息技术股份有限公司 接口测试方法及其装置与计算机装置及其可读存储介质
CN108804882A (zh) * 2018-06-11 2018-11-13 北京北信源信息安全技术有限公司 一种正版软件检测处理方法和系统
CN109271313A (zh) * 2018-08-13 2019-01-25 中国平安财产保险股份有限公司 代码测试方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN1632747A (zh) 2005-06-29

Similar Documents

Publication Publication Date Title
CN1277186C (zh) 软件接口测试方法
Balanyi et al. Mining design patterns from C++ source code
US7152229B2 (en) Workflow code generator
CN103412853B (zh) 一种针对文档转换器的测试用例自动生成方法
CN110781086B (zh) 一种跨项目缺陷影响分析方法
CN106528399A (zh) 一种测试用例确定方法及装置
AU2054900A (en) Method and apparatus for executing pl/sql stored code objects in a database
US20080320054A1 (en) Database and Software Conversion System and Method
CN101841515A (zh) 可变目标的协议数据单元编解码代码自动生成的实现方法
CN110399133A (zh) 一种基于前端字节码技术的JavaScript代码优化方法
CN101408849A (zh) Ttcn-3语言的编译执行方法及系统
US7505988B2 (en) XML validation processing
CN1248115C (zh) 通用测试报告的实现方法
US7409619B2 (en) System and methods for authoring domain specific rule-driven data generators
CN116450616A (zh) 一种基于解析树的通用异构关系型数据库sql迁移方法
CN112379917A (zh) 浏览器兼容性提升方法、装置、设备及存储介质
US20030226134A1 (en) Representation of core files in a generic format
CN105893052A (zh) 一种war包分析器
CN1992715A (zh) 基于asn.1定义的pdu编解码代码自动生成的实现方法
US7634764B2 (en) Method and system for flexible/extendable at command interpreter
US20050234924A1 (en) Automated patching of code for schema derived classes
US8650536B2 (en) Modular server architecture
CN1282917A (zh) 一种软件模拟测试方法
CN1641592A (zh) 一种对带键盘电子产品的功能测试方法及测试系统
CN114036055A (zh) 一种xmind测试用例与jmeter脚本互转的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060927

Termination date: 20100122