一种接口自动化测试方法和设备
文献发布时间:2024-04-18 20:01:55
技术领域
本发明涉及信息技术领域,具体涉及一种接口自动化测试方法和设备。
背景技术
软件测试过程中,在项目上线前经常会对版本进行回归测试,但单纯通过手工操作回归测试,耗时且覆盖范围不全面,因此通过提前维护自动化测试脚本会大大节约时间成本,提高效率;但现有很多自动化脚本改动范围大,维护成本大。
发明内容
有鉴于此,本发明的目的在于提供一种接口自动化测试方法和设备,以克服目前自动化脚本维护成本大,改动范围大的问题。
为实现以上目的,本发明采用如下技术方案:
一方面,本申请提供了一种接口自动化测试方法,包括:
获取待测试项目信息;
根据所述待测试项目信息,通过预先创建的基于Python的接口自动化测试框架对所述待测试项目的接口进行测试。
进一步的,以上所述的方法,在所述获取待测试项目信息之前,还包括:
在PyCharm中创建新的项目,安装Pytest;
在所述Pytest中分别搭建基础层模块、应用层模块、连接数据库模块、用例层模块和报告层模块。
进一步的,以上所述的方法,所述待测试项目信息包括:所述待测试项目和所述待测试项目的登录信息。
进一步的,以上所述的方法,所述根据所述待测试项目信息,通过预先创建的基于Python的接口自动化测试框架对所述待测试项目的接口进行测试,包括:
通过所述基础层模块将所述待测试项目的底层公共接口用python进行编写封装;
根据所述待测试项目的登录信息在所述应用层模块中的登录单元,并通过所述基础层模块封装的所述底层公共接口登录所述待测试项目;
通过所述应用层模块中的项目调用接口单元对所述待测试项目的后端API接口进行封装;
在所述用例层模块中配置用户预先输入的测试用例,并通过assert方法为所述测试用例封装断言;
通过所述连接数据库模块为封装后的所述断言连接数据库;
获取用户输入的执行文件,并通过所述执行文件配置运行虚拟环境;
通过所述测试用例和封装后的所述断言对所述后端API接口进行测试。
进一步的,以上所述的方法,所述待测试项目的登录信息包括:项目域名、登录账号和登录密码。
进一步的,以上所述的方法,所述根据所述待测试项目的登录信息在所述应用层模块中的登录单元,并通过所述基础层模块封装的所述底层公共接口登录所述待测试项目,包括:
根据所述项目域名修改所述登录单元的登录地址;
根据所述登录单元通过所述基础层模块封装的所述底层公共接口进入所述待测试项目的登录界面;
根据所述登录账号和所述登录密码在所述登录界面中登录所述待测试项目。
进一步的,以上所述的方法,还包括:
获取测试结果,并通过所述报告层模块生成自动化测试报告。
另一方面,本申请还提供了一种接口自动化测试设备,包括处理器和存储器,所述处理器与存储器相连:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储所述程序,所述程序至少用于执行以上任一项所述的接口自动化测试方法。
本发明的有意效果为:
本申请首先获取待测试项目信息,根据所述待测试项目信息,通过预先创建的基于Python的接口自动化测试框架对所述待测试项目的接口进行测试。在本申请中,采用基于Python的接口自动化测试框架对待测试项目的接口进行测试,只需对接口自动化测试框架内的特定模块进行修改,便可进行维护,可有效减少维护成本,改动范围小,利用率高,从而提高测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种接口自动化测试方法一种实施例提供的流程图;
图2是本发明一种接口自动化测试设备一种实施例提供的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
软件测试过程中,在项目上线前经常会对版本进行回归测试,但单纯通过手工操作回归测试,耗时且覆盖范围不全面,因此通过提前维护自动化测试脚本会大大节约时间成本,提高效率;但现有很多自动化脚本改动范围大,维护成本大。
有鉴于此,本发明的目的在于提供一种接口自动化测试方法和设备,以克服目前自动化脚本维护成本大,改动范围大的问题。
图1是本发明一种接口自动化测试方法一种实施例提供的流程图。请参阅图1,本实施例可以包括以下步骤:
S1、获取待测试项目信息。
S2、根据待测试项目信息,通过预先创建的基于Python的接口自动化测试框架对待测试项目的接口进行测试。
可以理解的是,本申请首先获取待测试项目信息,根据所述待测试项目信息,通过预先创建的基于Python的接口自动化测试框架对所述待测试项目的接口进行测试。在本申请中,采用基于Python的接口自动化测试框架对待测试项目的接口进行测试,只需对接口自动化测试框架内的特定模块进行修改,便可进行维护,可有效减少维护成本,改动范围小,利用率高,从而提高测试效率。
优选的,在步骤S1之前,还包括:
在PyCharm中创建新的项目,安装Pytest;
在Pytest中分别搭建基础层模块、应用层模块、连接数据库模块、用例层模块和报告层模块。
优选的,待测试项目信息包括:待测试项目和待测试项目的登录信息。
优选的,步骤S2,包括:
通过基础层模块将待测试项目的底层公共接口用python进行编写封装;
根据待测试项目的登录信息在应用层模块中的登录单元,并通过基础层模块封装的底层公共接口登录待测试项目;
通过应用层模块中的项目调用接口单元对待测试项目的后端API接口进行封装;
在用例层模块中配置用户预先输入的测试用例,并通过assert方法为测试用例封装断言;
通过连接数据库模块为封装后的断言连接数据库;
获取用户输入的执行文件,并通过执行文件配置运行虚拟环境;
通过测试用例和封装后的断言对后端API接口进行测试。
可以理解的是,建基础层模块为basepage模块,该模块将底层公共接口方法用python进行编写封装,供其他模块直接调用。应用层模块为page模块,该模块主要包含了登录模块和项目调用接口模块。其中登录模块即是封装登录方法,用户将登录地址更改为对应的项目域名+登录账号密码即可直接登录项目;项目调用接口模块则是将页面调用的后端API接口封装成request方法,主要供测试用例模块进行调用。连接数据库模块为data模块,该模块主要用于连接数据库,支持主流数据库oracle/mysql;在编写用例时,需要通过添加断言来判断该用例是否执行通过,断言的判断往往需要获取数据库的数据,该模块则为此提供了方法;另外,很多接口会存在上下级联的关系,及上个接口产生结果对应的id/name刚好是下个接口的入参,此时则需要连接数据库提前获取到对应数据的id/name,从而提供给下个接口使用。用例层模块为case模块,用于封装断言及编写测试用例;断言模块则是供用例模块来校验该用例是否执行通过,通过封装断言assert方法,使得在维护用例断言时,只需要更改封装断言里的源头代码即可,不用去维护每个用例对应的断言,提高维护成本;测试用例编写时,基本调用的都是封装好的接口方法,一旦发生变动,只需维护接口方法的代码即可,使用用例的重复利用率提高,从而提高测试效率。执行文件为pyvenv.cfg文件,主要为配置接口自动化测试框架的运行环境。
优选的,待测试项目的登录信息包括:项目域名、登录账号和登录密码。
优选的,根据待测试项目的登录信息在应用层模块中的登录单元,并通过基础层模块封装的底层公共接口登录待测试项目,包括:
根据项目域名修改登录单元的登录地址;
根据登录单元通过基础层模块封装的底层公共接口进入待测试项目的登录界面;
根据登录账号和登录密码在登录界面中登录待测试项目。
优选的,还包括:
获取测试结果,并通过报告层模块生成自动化测试报告。
可以理解的是,报告层模块是基于Pytest+Allure搭建的report模块,该模块主要利用第三方软件Allure生成自动化测试报告,可详细查看运行结果,便于分析用例执行结果。
本申请中通过将接口封装,搭建basepage模块+page模块+data模块+case模块+report模块而创建的一种接口自动化测试框架,该框架操作简单,模块清晰,只需修改部分基础数据,即可供用户直接使用,从而大大降低框架的维护成本,提高测试效率;同时支持二次开发利用。
本发明还提供了一种接口自动化测试设备,用于实现上述方法实施例。图2是本发明一种接口自动化测试设备一种实施例提供的结构示意图。如图2所示,本实施例的接口自动化测试设备包括处理器21和存储器22,处理器21与存储器22相连。其中,处理器21用于调用并执行所述存储器22中存储的程序;存储器22用于存储所述程序,所述程序至少用于执行以上实施例中的接口自动化测试方法。
本申请实施例提供的接口自动化测试设备的具体实施方案可以参考以上任意实施例的接口自动化测试方法的实施方式,此处不再赘述。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。