CN110221948A - 测试脚本生成方法、装置、计算机装置及存储介质 - Google Patents

测试脚本生成方法、装置、计算机装置及存储介质 Download PDF

Info

Publication number
CN110221948A
CN110221948A CN201910314648.9A CN201910314648A CN110221948A CN 110221948 A CN110221948 A CN 110221948A CN 201910314648 A CN201910314648 A CN 201910314648A CN 110221948 A CN110221948 A CN 110221948A
Authority
CN
China
Prior art keywords
interface
test
tested
program segment
parameters
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.)
Granted
Application number
CN201910314648.9A
Other languages
English (en)
Other versions
CN110221948B (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.)
OneConnect Smart Technology Co Ltd
Original Assignee
OneConnect Smart Technology Co 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 OneConnect Smart Technology Co Ltd filed Critical OneConnect Smart Technology Co Ltd
Priority to CN201910314648.9A priority Critical patent/CN110221948B/zh
Publication of CN110221948A publication Critical patent/CN110221948A/zh
Application granted granted Critical
Publication of CN110221948B publication Critical patent/CN110221948B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种测试脚本生成方法,包括:获取待测试接口以及待测试接口的接口文档;识别待测试接口的接口参数;获取第三方测试平台进行接口测试的程序段,程序段包括用于设置接口参数的第一程序段以及用于根据接口参数中的输入参数调用待测试接口的第二程序段;根据第一程序段以及第二程序段生成运行于第三方测试平台的测试脚本,测试脚本在运行时根据第一程序段设置接口参数以及根据第二程序段基于设置的接口参数中的输入参数向待测试接口发送接口调用请求。本发明还公开了一种测试脚本生成装置、计算机装置和计算机可读存储介质。本发明可以生成用于接口测试的测试脚本,提高接口测试的便捷性以及接口测试的准确性。

Description

测试脚本生成方法、装置、计算机装置及存储介质
技术领域
本发明涉及测试技术领域,尤其涉及一种测试脚本生成方法、装置、计算机装置及存储介质。
背景技术
在代码编写好之后,通常会对代码进行测试,接口测试是代码测试过程中的常见环节。目前,常使用第三方接口测试工具(例如postman、JMeter)进行接口测试,在使用第三方接口测试工具时,常常需要用户手动录入接口的参数,例如,需要用户手动录入要传递的参数及该参数的值。这使得接口测试往往需要耗费比较长的时间,也可能出现录入错误而应用测试结果。
发明内容
鉴于以上内容,有必要提供一种测试脚本生成方法、装置、计算机装置及存储介质,能够生成用于接口测试的测试脚本,提高接口测试的便捷性以及接口测试的准确性。
本发明提供一种测试脚本生成方法,所述方法包括:
获取待测试接口以及所述待测试接口的接口文档;
根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;
根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;
根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。
在本发明可选实施中,所述根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本之后,所述方法还包括:
获取接口参数赋值文本;
从所述接口参数赋值文本中根据所述接口参数的参数名称获取与所述接口参数对应的测试值;
在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本;
将所述包含所述测试值的测试脚本导入所述第三方测试平台,通过所述第三方测试平台运行所述包含所述测试值的测试脚本。
在本发明可选实施中,所述在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本包括:
从所述接口文档获取所述接口参数的参数规范;
判断所述测试值是否符合所述参数规范;
若所述测试值不符合所述参数规范,发送测试值异常提醒;
若所述测试值符合所述测试规范,在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本。
在本发明可选实施例中,所述方法还包括:
根据所述接口文档包含的所述接口参数的参数规范生成所述接口参数对应的测试值,将所述接口参数对应的测试值保存在所述接口参数赋值文本中。
在本发明可选实施例中,所述方法还包括:
获取运行所述包含测试值的测试脚本之后得到的运行输出值;
获取所述测试值对应的预期输出值;
将所述运行输出值与所述预期输出值进行匹配,判断所述运行输出值与所述预期输出值是否相同;
若所述运行输出值与所述预期输出值不相同,发送接口异常提醒。
在本发明可选实施例中,所述方法还包括:
当预期输出值与所述运行输出值不相同时,保存所述测试值;
当所述接口更新之后,再次通过所述测试值对所述待测试接口进行测试。
在本发明可选实施例中,所述第三方测试平台进行接口测试的程序段还包括用于设置测试次数的第三程序段以及用于捕获测试异常的第四程序段。
本发明还提供一种测试脚本生成装置,所述装置包括:
第一获取模块,用于获取待测试接口以及所述待测试接口的接口文档;
第二获取模块,用于根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;
第三获取模块,用于根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;
生成模块,用于根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。
在本发明可选实施例中,所述装置还包括运行模块,所述运行模块用于:
根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本之后,获取接口参数赋值文本;
从所述接口参数赋值文本中根据所述接口参数的参数名称获取与所述接口参数对应的测试值;
在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本;
将所述包含所述测试值的测试脚本导入所述第三方测试平台,通过所述第三方测试平台运行所述包含所述测试值的测试脚本。
在本发明可选实施例中,所述运行模块在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本包括:
从所述接口文档获取所述接口参数的参数规范;
判断所述测试值是否符合所述参数规范;
若所述测试值不符合所述参数规范,发送测试值异常提醒;
若所述测试值符合所述测试规范,在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本。
在本发明可选实施例中,所述生成模块,还用于根据所述接口文档包含的所述接口参数的参数规范生成所述接口参数对应的测试值,将所述接口参数对应的测试值保存在所述接口参数赋值文本中。
在本发明可选实施例中,所述装置还包括:
第四获取模块,用于获取运行所述包含测试值的测试脚本之后得到的运行输出值;
第五获取模块,用于获取所述测试值对应的预期输出值;
判断模块,用于将所述运行输出值与所述预期输出值进行匹配,判断所述运行输出值与所述预期输出值是否相同;
提醒模块,用于若所述运行输出值与所述预期输出值不相同,发送接口异常提醒。
在本发明可选实施例中,所述装置还包括:
保存模块,用于当预期输出值与所述运行输出值不相同时,保存所述测试值;
测试模块,用于当所述接口更新之后,再次通过所述测试值对所述待测试接口进行测试。
在本发明可选实施例中,所述第三方测试平台进行接口测试的程序段还包括用于设置测试次数的第三程序段以及用于捕获测试异常的第四程序段。
本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的测试脚本生成方法。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的测试脚本生成方法。
由以上技术方案看出,本发明获取待测试接口以及所述待测试接口的接口文档;根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。从而能够生成运行于第三方测试平台的测试脚本,从而无需在第三方测试平台进行手动录入,就能够进行接口测试,实现了接口测试的便捷性的目的,避免了因用户手动输入而导致的输入错误问题,提高了接口测试的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例提供的一种测试脚本生成方法的流程图;
图2是本发明实施例提供的一种测试脚本生成装置的功能模块图;
图3是本发明实现测试脚本生成方法的较佳实施例的计算机装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,图1为本发明实施例提供的一种测试脚本生成方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,获取待测试接口以及所述待测试接口的接口文档。
通过本实施例生成的测试脚本是用于对待测试接口进行接口测试的测试脚本。
接口测试是对系统组件间接口进行测试,通过接口测试能够对不同系统模块之间的交互进行验证。接口测试通常可以包括web接口测试、应用程序接口(API,applicationprogramming interface)测试、数据库接口测试。
在进行接口测试时(即对要某一接口进行测试时),需要向接口传输数据,再判断该接口是否能够返回预期的值,其中,向该接口传递的数据可以称为入参,即输入参数,该代码根据入参运行后得到的返回值可以称为出参,即输出参数。
本实施例中所述接口是要进行测试的接口。
所述接口文档是对接口进行说明和定义的文档。本实施例中接口文档可以但不限于该接口的描述、该接口的输入参数、输入参数的描述、输入参数的类型、输出参数、输出参数的描述、输出参数的类型。
本实施例中,接口文档的类型可以是文本类型。例如,接口文档为xlsx格式的文档;或者,接口文档为CSV格式的文档;又或者,接口文档为XML格式的文档。
S12,根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数。
一种可能的实施例中,将待测试接口所定义的接口参数的名称写在预设列,则在从接口文档中获取接口参数时,直接获取该预设列的内容;
或者,另一种可能的实施例中,通过预设关键字(例如,input para)确定哪一列为表示输入参数的列,再去获取该列的内容。
通过根据接口文档中的字段描述识别待测试接口的接口参数可以确定该接口有哪些输入的参数。本实施例中,待测试接口的输入参数可以为一个或者是多个。
例如,某一前端代码用于接收用户的登陆信息(包括登录名和密码),再将接收到的登陆信息传输至某一后端代码,该后端代码用于接收该前端代码发送的登陆信息,进而根据该验证信息验证用户是否为已注册用户。在这种情况下,后端代码会提供接口供前端访问,前端调用后端提供的接口,并向该接口传递参数。此时,接口文档中定义要测试接口的入参为“username”以及参数“pwd”。
S13,根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段。
本实施例中,所述第三方测试平台可以是JMeter、Grinder、SoapUI等第三方测试平台(或称为第三方测试工具)。
所述据第三方测试平台用于接口测试的函数名为预设的,不同的第三方测试平台的编码不相同,因此,不同的第三方测试平台用于接口测试的函数名称也不相同。
第三方测试平台用于接口测试的程序段可以包括但不限于:第三方测试平台用于设置接口的请求参数的API函数或向接口传递请求参数的API函数、用于调用接口运行的API函数。
所述程序段包括用于设置所述接口参数的第一程序段,如第三方测试平台用于设置接口参数的API函数,以及用于根据所述接口参数调用待测试接口运行的API函数。
本发明其他实施例中,所述程序段还包括用于设置测试次数的第三程序段以及用于捕获测试异常的第四程序段。则通过第三程序段能够对测试过程中的联系测试次数进行设置,通过第四测试段,能够捕获测试过程中出现的异常,例如当向待测试接口发送测试请求后,并未获取到返回数据时,捕获异常。
S14,根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。
在本实施例中,在获取到接口参数之后,根据第一程序段生成测试脚本的第一部分,第一部分用于根据获取到的接口参数设置向接口传递的参数。
同时,在获取到接口(例如某http地址)之后,根据第二程序段生成测试脚本的第二部分,第二部分用于调用接口并向该接口传递接口参数(例如,向http地址发送post请求)。
在本实施例中,可以得到适用于不同第三方平台的测试脚本,则可以根据得到的测试脚本应用于不同的第三方平台进行测试。
可选的,在本发明另一实施例中,所述根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本之后,所述方法还包括:
获取接口参数赋值文本;
从所述接口参数赋值文本中根据所述接口参数的参数名称获取与所述接口参数对应的测试值;
在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本;
将所述包含所述测试值的测试脚本导入所述第三方测试平台,通过所述第三方测试平台运行所述包含所述测试值的测试脚本。
在本实施例中,生成测试脚本之后,对脚本中的接口参数进行赋值,进而运行该测试脚本,通过运行赋值后的测试脚本实现通过生成的第三方测试脚本进行测试。
所述接口参数赋值文本中包含接口参数对应的测试值。
所述接口参数对应的测试值是指在测试时,对该接口输入的实际测试值。
例如,接口参数为username以及pwd,其中,username和pwd的测试值为{aaa,123},{bbb,456},即该组测试值用于对用户名为“aaa”,密码为“123”以及用户名为“bbb”,密码为“456”的用户进行测试,验证向该接口输入这两组测试值时是否能够反馈正确的值。
一种可选的实施例中,所述接口参数赋值文本中包含的测试值为测试人员预先输入的。
可选的,在本发明另一实施例中,通过以下方法生成接口参数赋值文本中的测试值,所述方法还包括:
根据所述接口文档包含的所述接口参数的参数规范生成所述接口参数对应的测试值,将所述接口参数对应的测试值保存在所述接口参数赋值文本中。
例如,如接口参数username的最长长度为10,数据类型为char,则随机生成长度小于10,等于10和大于10的至少三个测试值,同时,不同长度的测试值的数据类型为char型,非char型(如数据类型为long型)。
通过本实施例,无需用户人员手动编写测试值,能够快速的自动生成接口参数的测试值,提高接口测试的测试效率。
可选的,在本发明另一实施例中,若接口参数赋值文本中的值为测试人员预先设置的,则所述在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本包括:
从所述接口文档获取所述接口参数的参数规范;
判断所述测试值是否符合所述参数规范;
若所述测试值不符合所述参数规范,发送测试值异常提醒;
若所述测试值符合所述测试规范,在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本。
本实施例中,若接口参数赋值文本中的值为测试人员预先设置的,则在利用测试值进行测试时,检测测试值是否符合参数规范,有利于保证测试数据的正确性,从而避免无效的测试,提高测试的效率。
所述参数规范可以是参数类型,长度等对参数的约束条件。
例如,获取到接口参数username的长度最长为10,则判断获取到的username的测试值的长度是否超过10,若超过,则发送测试值异常提醒。
通过本实施例,可以快速的预警测试中存在的问题,有利于定位当测试结果异常时是否是因为测试值不符合参数规范。
可选的,在本发明另一实施例中,所述方法还包括:
获取运行所述包含测试值的测试脚本之后得到的运行输出值;
获取所述测试值对应的预期输出值;
将所述运行输出值与所述预期输出值进行匹配,判断所述运行输出值与所述预期输出值是否相同;
若所述运行输出值与所述预期输出值不相同,发送接口异常提醒。
所述运行输出值是根据测试值对接口进行测试后所得到的值。
所述测试值对应的预期输出值是向该接口发送测试值之后正确运行时所得到的输出值。
例如,测试值为某一订单号,运行包含该测试值的测试脚本(即执行向订单查询接口发送该订单号的操作),该测试值的预期输出值为该订单所关联的订单的详细信息。在获取订单查询接口返回的运行输出值之后,若判断运行输出值为该订单号所关联的订单的详细信息,确定运行输出值与预期输出值相同;若判断运行输出值为查询不到该订单号,确定运行输出值与预期输出值不相同;若判断运行输出值为其他订单号所关联的订单的详细信息,确定运行输出值与预期输出值不相同,当运行输出值与预期输出值不相同时,发送订单查询接口存在异常的提醒消息。
本实施例中,当出现预期输出值与运行输出值不相同的状况时,表明该接口内部逻辑可能存在错误,提醒开发人员进行检查,可以在生成对接口进行测试的测试脚本之后,对该接口是否存在异常进行验证,有利于测试人员及时发现存在异常的接口。
可选的,在本发明另一实施例中,所述方法还包括:
当预期输出值与所述运行输出值不相同时,保存所述测试值;
当所述接口更新之后,再次通过所述测试值对所述待测试接口进行测试。
在本实施例中,保存所述测试值包括将所述测试值持久化到数据库中,从而能够使该测试值重复利用。
在保存测试值之后,检测接口是否存在更新,具体的可以通过接口代码是否相同来判断接口是否存在更新,或者通过接口代码的版本名称来判断接口是否存在更新。
当接口存在更新时,再次通过测试值对接口进行测试,从而能够将接口更新前与更新后的代码进行比对,判断该接口所存在的异常是否修复正确。
本发明提供的方法获取待测试接口以及所述待测试接口的接口文档;根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。从而能够生成运行于第三方测试平台的测试脚本,从而无需在第三方测试平台进行手动录入,就能够进行接口测试,实现了接口测试的便捷性的目的,避免了因用户手动输入而导致的输入错误问题,提高了接口测试的准确性。
如图2所示,图2为本发明实施例提供的一种测试脚本生成装置的功能模块图。所述测试脚本生成装置包括第一获取模块210、第二获取模块220、第三获取模块230和生成模块240。本发明所称的模块是指一种能够被处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机设备的存储器中。可以是电脑、手机、平板电脑等电子设备。在本实施例中,关于各模块的功能将在后续的实施例中详述。
第一获取模块210,用于获取待测试接口以及所述待测试接口的接口文档。
通过本实施例生成的测试脚本是用于对待测试接口进行接口测试的测试脚本。
接口测试是对系统组件间接口进行测试,通过接口测试能够对不同系统模块之间的交互进行验证。接口测试通常可以包括web接口测试、应用程序接口(API,applicationprogramming interface)测试、数据库接口测试。
在进行接口测试时(即对要某一接口进行测试时),需要向接口传输数据,再判断该接口是否能够返回预期的值,其中,向该接口传递的数据可以称为入参,即输入参数,该代码根据入参运行后得到的返回值可以称为出参,即输出参数。
本实施例中所述接口是要进行测试的接口。
所述接口文档是对接口进行说明和定义的文档。本实施例中接口文档可以但不限于该接口的描述、该接口的输入参数、输入参数的描述、输入参数的类型、输出参数、输出参数的描述、输出参数的类型。
本实施例中,接口文档的类型可以是文本类型。例如,接口文档为xlsx格式的文档;或者,接口文档为CSV格式的文档;又或者,接口文档为XML格式的文档。
第二获取模块220,用于根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数。
一种可能的实施例中,将待测试接口所定义的接口参数的名称写在预设列,则在从接口文档中获取接口参数时,直接获取该预设列的内容;
或者,另一种可能的实施例中,通过预设关键字(例如,input para)确定哪一列为表示输入参数的列,再去获取该列的内容。
通过根据接口文档中的字段描述识别待测试接口的接口参数可以确定该接口有哪些输入的参数。本实施例中,待测试接口的输入参数可以为一个或者是多个。
例如,某一前端代码用于接收用户的登陆信息(包括登录名和密码),再将接收到的登陆信息传输至某一后端代码,该后端代码用于接收该前端代码发送的登陆信息,进而根据该验证信息验证用户是否为已注册用户。在这种情况下,后端代码会提供接口供前端访问,前端调用后端提供的接口,并向该接口传递参数。此时,接口文档中定义要测试接口的入参为“username”以及参数“pwd”。
第三获取模块230,用于根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段。
本实施例中,所述第三方测试平台可以是JMeter、Grinder、SoapUI等第三方测试平台(或称为第三方测试工具)。
所述据第三方测试平台用于接口测试的函数名为预设的,不同的第三方测试平台的编码不相同,因此,不同的第三方测试平台用于接口测试的函数名称也不相同。
所述程序段包括用于设置所述接口参数的第一程序段,如第三方测试平台用于设置接口参数的API函数,以及用于根据所述接口参数调用待测试接口运行的API函数。
本发明其他实施例中,所述程序段还包括用于设置测试次数的第三程序段以及用于捕获测试异常的第四程序段。则通过第三程序段能够对测试过程中的联系测试次数进行设置,通过第四测试段,能够捕获测试过程中出现的异常,例如当向待测试接口发送测试请求后,并未获取到返回数据时,捕获异常。
生成模块240,用于根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。
在本实施例中,在获取到接口参数之后,根据第一程序段生成测试脚本的第一部分,第一部分用于根据获取到的接口参数设置向接口传递的参数。
同时,在获取到接口(例如某http地址)之后,根据第二程序段生成测试脚本的第二部分,第二部分用于调用接口并向该接口传递接口参数(例如,向http地址发送post请求)。
在本实施例中,可以得到适用于不同第三方平台的测试脚本,则可以根据得到的测试脚本应用于不同的第三方平台进行测试。
可选的,在本发明另一实施例中,所述装置还包括运行模块,所述运行模块用于:
根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本之后,获取接口参数赋值文本;
从所述接口参数赋值文本中根据所述接口参数的参数名称获取与所述接口参数对应的测试值;
在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本;
将所述包含所述测试值的测试脚本导入所述第三方测试平台,通过所述第三方测试平台运行所述包含所述测试值的测试脚本。
在本实施例中,生成测试脚本之后,对脚本中的接口参数进行赋值,进而运行该测试脚本,通过运行赋值后的测试脚本实现通过生成的第三方测试脚本进行测试。
所述接口参数赋值文本中包含接口参数对应的测试值。
所述接口参数对应的测试值是指在测试时,对该接口输入的实际测试值。
例如,接口参数为username以及pwd,其中,username和pwd的测试值为{aaa,123},{bbb,456},即该组测试值用于对用户名为“aaa”,密码为“123”以及用户名为“bbb”,密码为“456”的用户进行测试,验证向该接口输入这两组测试值时是否能够反馈正确的值。
一种可选的实施例中,所述接口参数赋值文本中包含的测试值为测试人员预先输入的。
可选的,在本发明另一实施例中,通过以下模块生成接口参数赋值文本中的测试值:
所述生成模块,还用于根据所述接口文档包含的所述接口参数的参数规范生成所述接口参数对应的测试值,将所述接口参数对应的测试值保存在所述接口参数赋值文本中。
例如,如接口参数username的最长长度为10,数据类型为char,则随机生成长度小于10,等于10和大于10的至少三个测试值,同时,不同长度的测试值的数据类型为char型,非char型(如数据类型为long型)。
通过本实施例,无需用户人员手动编写测试值,能够快速的自动生成接口参数的测试值,提高接口测试的测试效率。
可选的,在本发明另一实施例中,若接口参数赋值文本中的值为测试人员预先设置的,则所述运行模块在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本包括:
从所述接口文档获取所述接口参数的参数规范;
判断所述测试值是否符合所述参数规范;
若所述测试值不符合所述参数规范,发送测试值异常提醒;
若所述测试值符合所述测试规范,在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本。
本实施例中,若接口参数赋值文本中的值为测试人员预先设置的,则在利用测试值进行测试时,检测测试值是否符合参数规范,有利于保证测试数据的正确性,从而避免无效的测试,提高测试的效率。
所述参数规范可以是参数类型,长度等对参数的约束条件。
例如,获取到接口参数username的长度最长为10,则判断获取到的username的测试值的长度是否超过10,若超过,则发送测试值异常提醒。
通过本实施例,可以快速的预警测试中存在的问题,有利于定位当测试结果异常时是否是因为测试值不符合参数规范。
可选的,在本发明另一实施例中,所述装置还包括:
第四获取模块,用于获取运行所述包含测试值的测试脚本之后得到的运行输出值;
第五获取模块,用于获取所述测试值对应的预期输出值;
判断模块,用于将所述运行输出值与所述预期输出值进行匹配,判断所述运行输出值与所述预期输出值是否相同;
提醒模块,用于若所述运行输出值与所述预期输出值不相同,发送接口异常提醒。
所述运行输出值是根据测试值对接口进行测试后所得到的值。
所述测试值对应的预期输出值是向该接口发送测试值之后正确运行时所得到的输出值。
例如,测试值为某一订单号,运行包含该测试值的测试脚本(即执行向订单查询接口发送该订单号的操作),该测试值的预期输出值为该订单所关联的订单的详细信息。在获取订单查询接口返回的运行输出值之后,若判断运行输出值为该订单号所关联的订单的详细信息,确定运行输出值与预期输出值相同;若判断运行输出值为查询不到该订单号,确定运行输出值与预期输出值不相同;若判断运行输出值为其他订单号所关联的订单的详细信息,确定运行输出值与预期输出值不相同,当运行输出值与预期输出值不相同时,发送订单查询接口存在异常的提醒消息。
本实施例中,当出现预期输出值与运行输出值不相同的状况时,表明该接口内部逻辑可能存在错误,提醒开发人员进行检查,可以在生成对接口进行测试的测试脚本之后,对该接口是否存在异常进行验证,有利于测试人员及时发现存在异常的接口。
可选的,在本发明另一实施例中,所述装置还包括:
保存模块,用于当预期输出值与所述运行输出值不相同时,保存所述测试值;
测试模块,用于当所述接口更新之后,再次通过所述测试值对所述待测试接口进行测试。
在本实施例中,保存所述测试值包括将所述测试值持久化到数据库中,从而能够使该测试值重复利用。
在保存测试值之后,检测接口是否存在更新,具体的可以通过接口代码是否相同来判断接口是否存在更新,或者通过接口代码的版本名称来判断接口是否存在更新。
当接口存在更新时,再次通过测试值对接口进行测试,从而能够将接口更新前与更新后的代码进行比对,判断该接口所存在的异常是否修复正确。
本发明提供的测试脚本生成装置通过第一获取模块获取待测试接口以及所述待测试接口的接口文档;第二获取模块根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;第三获取模块根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;生成模块根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。从而能够生成运行于第三方测试平台的测试脚本,从而无需在第三方测试平台进行手动录入,就能够进行接口测试,实现了接口测试的便捷性的目的,避免了因用户手动输入而导致的输入错误问题,提高了接口测试的准确性。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
如图3所示,图3是本发明实现测试脚本生成方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。
所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机。
所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、监控设备等终端。
所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。
所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First InFirst Out,先进先出存储器)等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(securedigital card)、快闪存储器卡(flash card)等储存设备等等。
所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种测试脚本生成方法。所述处理器33又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种测试脚本生成方法,其特征在于,所述方法包括:
获取待测试接口以及所述待测试接口的接口文档;
根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;
根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;
根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本之后,所述方法还包括:
获取接口参数赋值文本;
从所述接口参数赋值文本中根据所述接口参数的参数名称获取与所述接口参数对应的测试值;
在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本;
将所述包含所述测试值的测试脚本导入所述第三方测试平台,通过所述第三方测试平台运行所述包含所述测试值的测试脚本。
3.如权利要求2所述的方法,其特征在于,所述在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本包括:
从所述接口文档获取所述接口参数的参数规范;
判断所述测试值是否符合所述参数规范;
若所述测试值不符合所述参数规范,发送测试值异常提醒;
若所述测试值符合所述测试规范,在所述测试脚本中对所述接口参数赋予所述测试值,得到包含所述测试值的测试脚本。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述接口文档包含的所述接口参数的参数规范生成所述接口参数对应的测试值,将所述接口参数对应的测试值保存在所述接口参数赋值文本中。
5.如权利要求2所述的方法,其特征在于,所述方法还包括:
获取运行所述包含测试值的测试脚本之后得到的运行输出值;
获取所述测试值对应的预期输出值;
将所述运行输出值与所述预期输出值进行匹配,判断所述运行输出值与所述预期输出值是否相同;
若所述运行输出值与所述预期输出值不相同,发送接口异常提醒。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
当预期输出值与所述运行输出值不相同时,保存所述测试值;
当所述接口更新之后,再次通过所述测试值对所述待测试接口进行测试。
7.如权利要求1至3中任一项所述的方法,其特征在于,所述第三方测试平台进行接口测试的程序段还包括用于设置测试次数的第三程序段以及用于捕获测试异常的第四程序段。
8.一种测试脚本生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取待测试接口以及所述待测试接口的接口文档;
第二获取模块,用于根据所述接口文档中的字段描述识别所述待测试接口的接口参数,所述待测试接口的接口参数包括所述待测试接口的输入参数;
第三获取模块,用于根据第三方测试平台用于接口测试的函数名称获取所述第三方测试平台进行接口测试的程序段,所述程序段包括用于设置所述接口参数的第一程序段以及用于根据所述接口参数中的输入参数调用所述待测试接口的第二程序段;
生成模块,用于根据所述第一程序段以及所述第二程序段生成运行于所述第三方测试平台的测试脚本,所述测试脚本在运行时根据所述第一程序段设置所述接口参数以及根据所述第二程序段基于设置的所述接口参数中的输入参数向所述待测试接口发送接口调用请求。
9.一种计算机装置,其特征在于,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现如权利要求1至7中任一项所述的测试脚本生成方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于:所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的测试脚本生成方法。
CN201910314648.9A 2019-04-18 2019-04-18 测试脚本生成方法、装置、计算机装置及存储介质 Active CN110221948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910314648.9A CN110221948B (zh) 2019-04-18 2019-04-18 测试脚本生成方法、装置、计算机装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910314648.9A CN110221948B (zh) 2019-04-18 2019-04-18 测试脚本生成方法、装置、计算机装置及存储介质

Publications (2)

Publication Number Publication Date
CN110221948A true CN110221948A (zh) 2019-09-10
CN110221948B CN110221948B (zh) 2023-03-28

Family

ID=67819824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910314648.9A Active CN110221948B (zh) 2019-04-18 2019-04-18 测试脚本生成方法、装置、计算机装置及存储介质

Country Status (1)

Country Link
CN (1) CN110221948B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111679968A (zh) * 2020-04-28 2020-09-18 平安普惠企业管理有限公司 接口调用异常的检测方法、装置、计算机设备及存储介质
CN112131127A (zh) * 2020-09-28 2020-12-25 北京同邦卓益科技有限公司 接口测试方法、装置、系统及电子设备
CN112328503A (zh) * 2020-11-30 2021-02-05 武汉空心科技有限公司 一种软件开发工作平台任务验收方法
CN112948195A (zh) * 2021-03-31 2021-06-11 建信金融科技有限责任公司 接口测试的方法、装置、电子设备和存储介质
CN113051172A (zh) * 2021-04-09 2021-06-29 广州虎牙科技有限公司 测试脚本的执行方法、装置、计算机设备和存储介质
CN113886221A (zh) * 2021-09-13 2022-01-04 前海飞算云智软件科技(深圳)有限公司 测试脚本生成方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144373A1 (en) * 2010-12-03 2012-06-07 Dcs Consultancy Services Limited Computer Program Testing
CN108415832A (zh) * 2018-02-07 2018-08-17 平安科技(深圳)有限公司 接口自动化测试方法、装置、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144373A1 (en) * 2010-12-03 2012-06-07 Dcs Consultancy Services Limited Computer Program Testing
CN108415832A (zh) * 2018-02-07 2018-08-17 平安科技(深圳)有限公司 接口自动化测试方法、装置、设备及存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111679968A (zh) * 2020-04-28 2020-09-18 平安普惠企业管理有限公司 接口调用异常的检测方法、装置、计算机设备及存储介质
CN112131127A (zh) * 2020-09-28 2020-12-25 北京同邦卓益科技有限公司 接口测试方法、装置、系统及电子设备
CN112131127B (zh) * 2020-09-28 2024-04-16 北京同邦卓益科技有限公司 接口测试方法、装置、系统及电子设备
CN112328503A (zh) * 2020-11-30 2021-02-05 武汉空心科技有限公司 一种软件开发工作平台任务验收方法
CN112948195A (zh) * 2021-03-31 2021-06-11 建信金融科技有限责任公司 接口测试的方法、装置、电子设备和存储介质
CN112948195B (zh) * 2021-03-31 2023-04-25 建信金融科技有限责任公司 接口测试的方法、装置、电子设备和存储介质
CN113051172A (zh) * 2021-04-09 2021-06-29 广州虎牙科技有限公司 测试脚本的执行方法、装置、计算机设备和存储介质
CN113051172B (zh) * 2021-04-09 2023-10-13 广州虎牙科技有限公司 测试脚本的执行方法、装置、计算机设备和存储介质
CN113886221A (zh) * 2021-09-13 2022-01-04 前海飞算云智软件科技(深圳)有限公司 测试脚本生成方法、装置、存储介质及电子设备
CN113886221B (zh) * 2021-09-13 2022-09-23 前海飞算云智软件科技(深圳)有限公司 测试脚本生成方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN110221948B (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
CN110221948A (zh) 测试脚本生成方法、装置、计算机装置及存储介质
CN108647141B (zh) 自动测试方法、装置、计算机可读介质及电子设备
CN106354634A (zh) 接口测试方法及装置
US8660833B2 (en) Method, computer program product and apparatus for providing an interactive network simulator
CN101193007A (zh) 统一资源定位符命令测试方法、场景测试方法和相应设备
CN110083526A (zh) 应用程序测试方法、装置、计算机装置及存储介质
WO2019052169A1 (zh) 坐席监控方法、装置、设备及计算机可读存储介质
CN109446075A (zh) 一种接口测试方法及装置
CN109408375A (zh) 接口文档的生成方法和装置
CN105955838A (zh) 一种系统死机的原因查看方法及装置
CN111045935A (zh) 版本自动审核方法、装置、设备及存储介质
CN110908892A (zh) 接口数据测试方法、装置及可读存储介质
CN110377441A (zh) 打车应用软件线上问题定位方法、装置、设备及存储介质
CN111598707B (zh) 一种页面的生成方法及电子设备
WO2015067171A1 (zh) Debug调试方法和装置
CN116089439A (zh) 一种动态表单的修改方法及装置
CN106294104B (zh) 一种测试用例的执行方法及移动终端
CN104156312A (zh) 一种评估软件可靠性的方法
CN105512020A (zh) 测试方法及装置
CN113986494A (zh) 接口处理方法及装置、电子设备、存储介质
CN113407593A (zh) 数据抽检方法、装置、电子设备和可读存储介质
CN112583660A (zh) 一种推荐平台的主域、备域测试对比方法、装置及系统
CN110472038A (zh) 一种数据安全的评估方法、评估装置及可读存储介质
CN111143149B (zh) 请求数据回显方法、装置、计算机设备及存储介质
CN115034833B (zh) 投放策略的测试方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant