CN113392026B - 接口自动化测试方法、系统、电子设备及存储介质 - Google Patents

接口自动化测试方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN113392026B
CN113392026B CN202110767769.6A CN202110767769A CN113392026B CN 113392026 B CN113392026 B CN 113392026B CN 202110767769 A CN202110767769 A CN 202110767769A CN 113392026 B CN113392026 B CN 113392026B
Authority
CN
China
Prior art keywords
test
interface
request
tested
script
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.)
Active
Application number
CN202110767769.6A
Other languages
English (en)
Other versions
CN113392026A (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.)
Beijing Smart Starlight Information Technology Co ltd
Original Assignee
Beijing Smart Starlight Information 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 Beijing Smart Starlight Information Technology Co ltd filed Critical Beijing Smart Starlight Information Technology Co ltd
Priority to CN202110767769.6A priority Critical patent/CN113392026B/zh
Publication of CN113392026A publication Critical patent/CN113392026A/zh
Application granted granted Critical
Publication of CN113392026B publication Critical patent/CN113392026B/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/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种接口自动化测试方法、系统、电子设备及存储介质,该方法包括:获取待测试接口的接口测试配置信息,接口测试配置信息包括接口测试需求信息和测试执行信息;接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;测试执行信息包括测试执行时间;获取用于执行接口自动化测试的测试脚本;接收UrlTest_server接口请求,UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,配置文件的存储路径和测试脚本的存储路径相同;按照测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试。通过上述步骤实现了根据待测试接口的接口配置信息自动完成接口自动化测试。

Description

接口自动化测试方法、系统、电子设备及存储介质
技术领域
本发明涉及软件测试领域,具体涉及到一种接口自动化测试方法、系统、电子设备及存储介质。
背景技术
为了保证软件的正常使用,需要对软件使用的接口进行测试,目前随着功能的不断增加,需要测试的接口也日益增多。测试人员对接口的测试工作量越来越大。为了保证测试频率不被测试工作量影响,测试人员需要借助工具来进行自动化测试。目前市面上的接口测试工具,比较成熟的有postman,JMeter等,这些工具虽然可以对大量接口进行功能测试,性能测试,但是无法根据测试需求去自定义测试方案。
发明内容
有鉴于此,本发明实施例提供了一种接口自动化测试方法、系统、电子设备及存储介质,以实现接口的自动化测试。
为此,本发明实施例提供了如下技术方案:
根据第一方面,本发明实施例提供了一种接口自动化测试方法,包括:
获取待测试接口的接口测试配置信息,所述接口测试配置信息包括接口测试需求信息和测试执行信息;其中,所述接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间;
获取测试脚本,所述测试脚本用于执行接口自动化测试;
接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;
通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同;
按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试。
可选地,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括:
通过测试脚本中的time_server接口将配置信息中的测试执行时间写入测试脚本中;
根据配置文件和测试脚本对待测试接口进行自动化测试。
可选地,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括:
将配置信息中的测试执行时间写入crontab命令;
通过crontab命令,根据配置文件和测试脚本对待测试接口进行自动化测试。
可选地,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括:
步骤S501:从配置文件中读取所有待测试接口的测试接口URL;
步骤S502:向当前测试接口URL所对应的测试接口发送URL接口请求;
步骤S503:接收当前测试接口URL所对应的测试接口返回的请求状态码;
步骤S504:判断请求状态码是否等于预设状态码;
步骤S505:若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过;
步骤S506:若请求状态码等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试通过;
步骤S507:将下一个测试接口URL作为当前测试接口URL并返回步骤S502,直至遍历完所有测试接口URL。
可选地,若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过的步骤之后,还包括:
生成自动化测试不通过的报错信息,所述报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容;
发送报错信息至预设机器人。
可选地,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤之后,还包括:
生成自动化测试报告;
将所述自动化测试报告进行存储;
发送所述自动化测试报告。
可选地,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤之后,还包括:
判断待测试接口是否发生变更;
若待测试接口未发生变更,则不执行任何操作;
若待测试接口发生变更,则根据变更后的待测试接口对接口测试配置信息进行更新。
根据第二方面,本发明实施例提供了一种接口自动化测试系统,包括:
第一获取模块,用于获取待测试接口的接口测试配置信息,所述接口测试配置信息包括接口测试需求信息和测试执行信息;其中,所述接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间;
第二获取模块,用于获取测试脚本,所述测试脚本用于执行接口自动化测试;
第一处理模块,用于接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;
第二处理模块,用于通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同;
第三处理模块,用于按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试。
可选地,所述第三处理模块包括:
第一处理单元,用于通过测试脚本中的time_server接口将配置信息中的测试执行时间写入测试脚本中;
第二处理单元,用于根据配置文件和测试脚本对待测试接口进行自动化测试。
可选地,所述第三处理模块包括:
第三处理单元,用于将配置信息中的测试执行时间写入crontab命令;
第四处理单元,用于通过crontab命令,根据配置文件和测试脚本对待测试接口进行自动化测试。
可选地,所述第三处理模块包括:
第一处理子单元,用于从配置文件中读取所有待测试接口的测试接口URL;
第二处理子单元,用于向当前测试接口URL所对应的测试接口发送URL接口请求;
第三处理子单元,用于接收当前测试接口URL所对应的测试接口返回的请求状态码;
判断子单元,用于判断请求状态码是否等于预设状态码;
第四处理子单元,用于若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过;
第五处理子单元,用于若请求状态码等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试通过;
第六处理子单元,用于将下一个测试接口URL作为当前测试接口URL并返回第二处理子单元,直至遍历完所有测试接口URL。
可选地,所述第三处理模块还包括:
第七处理子单元,用于生成自动化测试不通过的报错信息,所述报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容;
第八处理子单元,用于发送报错信息至预设机器人。
可选地,还包括:
第四处理模块,用于生成自动化测试报告;
第五处理模块,用于将所述自动化测试报告进行存储;
第六处理模块,用于发送所述自动化测试报告。
可选地,还包括:
判断模块,用于判断待测试接口是否发生变更;
第七处理模块,用于若待测试接口未发生变更,则不执行任何操作;
第八处理模块,用于若待测试接口发生变更,则根据变更后的待测试接口对接口测试配置信息进行更新。
根据第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行上述第一方面任意一项描述的接口自动化测试方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述第一方面任意一项描述的接口自动化测试方法。
本发明实施例技术方案,具有如下优点:
本发明实施例提供了一种接口自动化测试方法、系统、电子设备及存储介质,其中,该方法包括:获取待测试接口的接口测试配置信息,所述接口测试配置信息包括接口测试需求信息和测试执行信息;其中,所述接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间;获取测试脚本,所述测试脚本用于执行接口自动化测试;接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同;按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试。上述步骤,先获取待测试接口的接口测试配置信息和自动化测试脚本,接口配置信息包括测试接口URL、请求方式、请求参数和测试执行时间;然后,通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件;最后,待达到测试执行时间后,根据配置文件和测试脚本自动执行接口自动化测试。通过上述步骤实现了根据待测试接口的接口配置信息自动完成接口自动化测试,无需测试人员参与。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的接口自动化测试方法的一个具体示例的流程图;
图2为本发明实施例的接口自动化测试方法的另一个具体示例的流程图;
图3为本发明实施例的接口自动化测试系统的一个具体示例的框图;
图4为本发明实施例的电子设备的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种接口自动化测试方法,如图1所示,该方法包括步骤S1-S5。
步骤S1:获取待测试接口的接口测试配置信息,所述接口配置信息包括接口测试需求和测试执行信息;其中,所述接口测试需求包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间。
作为示例性的实施例,待测试接口的接口测试配置信息根据用户测试需求确定,具体包括接口测试需求信息和测试执行信息。
本实施例中,接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数。
本实施例中,请求方式可以包括GET请求方式、POST请求方式,本实施例对此仅作示意性描述,不以此为限;当然,在其它实施例中,请求方式还可以包括PUT、DELETE、PATCH等,在实际应用中根据需要合理确定即可。
本实施例中,请求参数可以包括预先和开发人员约定好的字段,请求参数根据实际测试情况确定,通常由接口开发人员提供参数格式。例如,在测试登录接口时,请求参数为loginName和password。
本实施例中,测试执行信息包括测试执行时间,是根据用户对测试需求来自行设定的。具体的,测试执行时间是接口自动化测试执行的具体时间,其具体设置为每天执行、每周执行或者每月执行等。每天执行只需要设置时间;每周执行需要设置周几执行;每月执行需要设置第几周执行;每年执行需要设置第几月执行。本实施例对此仅作示意性描述,不以次为限。
步骤S2:获取测试脚本,所述测试脚本用于执行接口自动化测试。
本实施例中,测试脚本是预先存储在本地服务器中的,也就是预先将测试工具所在的python测试脚本存储在本地服务器中。测试脚本是用于接口自动化测试的脚本,是根据待测试接口的测试需求确定的。
步骤S3:接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的。
本实施例中,当获取到待测试接口的接口测试配置信息后,服务器接收UrlTest_server接口请求。
UrlTest_server接口是存储测试配置信息的接口,作用是将待测试URL、参数和请求方式写入文件并储存到本地,测试执行时,会读取该文件并根据文件中的配置信息来执行自动化测试。
步骤S4:通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同。
本实施例中,接收到待测试接口的接口测试配置信息后,将会调用python测试脚本中的UrlTest_server接口,服务器接收到UrlTest_server接口请求后,会将所有配置信息以json格式写入配置文件,并将配置文件存入测试脚本所在路径中,测试过程中所产生的文件都默认存放在测试工具所部署的路径下。
具体的,配置文件中所包含的内容与配置信息相同。
步骤S5:按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试。
本实施例中,可以通过time_server接口将配置信息中填写的测试执行时间写入测试脚本中,进行定时执行测试用例;也可以通过将crontab命令将测试执行时间写入本地终端进行定时执行脚本。当到达测试执行时间后,自动执行测试脚本,对待测试接口进行自动化测试。
上述步骤,先获取待测试接口的接口测试配置信息和自动化测试脚本,接口配置信息包括测试接口URL、请求方式、请求参数和测试执行时间;然后,通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件;最后,待达到测试执行时间后,根据配置文件和测试脚本自动执行接口自动化测试。通过上述步骤实现了根据待测试接口的接口配置信息自动完成接口自动化测试,无需测试人员参与。
作为示例性的实施例,步骤S5按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括步骤S51-S52。
步骤S51:通过测试脚本中的time_server接口将配置信息中的测试执行时间写入测试脚本中。
time_server接口是设置执行时间的接口,作用是将设置时间写入测试脚本中,之后自动化测试会根据此时间进行定时执行。
步骤S52:根据配置文件和测试脚本对待测试接口进行自动化测试。
本实施例中,待到达上述测试执行时间后,从配置文件中读取所有的测试接口,通过测试脚本对所有测试接口进行自动化测试。
上述步骤,通过time_server接口将配置信息中的测试执行时间写入测试脚本中进行定时执行自动化测试,只需要填写执行时间,即可设置完成,设置方式简单。
作为示例性的实施例,步骤S5按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括步骤S53-S54。
步骤S53:将配置信息中的测试执行时间写入crontab命令。
具体的,crontab命令是cron table的简写,是cron的配置文件,用于设置周期行被执行的指令。通过crontab指令可以在固定的间隔时间执行shell script脚本。本实施例中通过crontab命令将测试执行时间写入本地终端。
步骤S52:根据配置文件和测试脚本对待测试接口进行自动化测试。
本实施例中,待到达上述测试执行时间后,从配置文件中读取所有的测试接口,通过测试脚本对所有测试接口进行自动化测试。
上述步骤,通过将配置信息中的测试执行时间写入crontab命令进行定时执行自动化测试,无需始终运行测试工具,达到执行时间电脑会自动打开工具并执行。
作为示例性的实施例,步骤S5根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括步骤S501-S507。
步骤S501:从配置文件中读取所有待测试接口的测试接口URL。
本实施例中,配置文件中包括所有待测试接口的接口URL,故从配置文件中便可读取到所有待测试接口的测试接口URL。
步骤S502:向当前测试接口URL所对应的测试接口发送URL接口请求。
本实施例中,自动化测试执行时,会按照配置文件中的接口URL的先后顺序进行逐个接口URL的测试。一个测试接口URL对应一个测试接口,不同的测试接口URL对应不同的测试接口。自动化测试执行到当前测试接口URL时,向当前测试接口URL所对应的测试接口发送URL接口请求。具体的,通过request方法请求接口。
步骤S503:接收当前测试接口URL所对应的测试接口返回的请求状态码。
本实施例中,当前测试接口URL所对应的测试接口接收到接口请求后,根据接口的实际情况返回请求状态码。
步骤S504:判断请求状态码是否等于预设状态码。
本实施例中,接收到返回的请求状态码后,将返回的请求状态码与预设状态码进行比较。若请求状态码不等于预设状态码,则执行步骤S505;若请求状态码等于预设状态码,则执行步骤S506。
本实施例中,预设状态码设置为200,状态码200表示成功处理了请求;当然,在其它实施例中,预设状态码还可以设置为其它以2开头的状态码,如201或者202等,本实施例中对此不作任何限制,根据实际需要合理设置即可。
步骤S505:若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过。
具体的,请求状态码与预设状态码不相同,在本实施例中也就是返回的请求状态码不是200,则当前测试接口URL所对应的测试接口的自动化测试不通过。
步骤S506:若请求状态码等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试通过。
当请求状态码等于预设状态码,则说明当前测试接口URL所对应的测试接口的自动化测试通过。
步骤S507:将下一个测试接口URL作为当前测试接口URL并返回步骤S502,直至遍历完所有测试接口URL。
本实施例中,经步骤S505和步骤S506之后,当前测试接口URL的自动化测试结束,结束后需对下一个测试接口进行自动化测试。将下一个测试接口URL作为当前测试接口URL,返回步骤S502,直到遍历完所有测试接口URL结束。
通过上述步骤实现了所有待测试接口的自动化测试。
作为示例性的实施例,配置信息还包括预设机器人的机器人token信息,预设机器人为根据用户需求设定的企业机器人。
本实施例中,预设机器人为根据用户需求设定的企业机器人。预设机器人具体可以是企业钉钉机器人或者企业微信机器人,本实施例对此仅作示意性描述,不以此为限,在实际应用中根据测试需要合理设置即可。
配置信息中包括选择通知平台的机器人token信息,以便后续通过机器人发送自动化测试通知。
作为示例性的实施例,步骤505若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过的步骤之后,还包括步骤S5051-S5052。
步骤S5051:生成自动化测试不通过的报错信息,所述报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容。
本实施例中,当返回的请求状态码不等于预设状态码时,说明当前测试接口URL的自动化测试不通过,测试不通过时生成自动化测试不通过的报错信息,报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容。
例如,报错信息为“(具体URL)请求失败,请求状态码为500,请相关人员查看”。
步骤S5052:发送报错信息至预设机器人。
本实施例中,测试不通过,则将不通过的接口和具体产生的报错内容进行机器人通知,也就是将报错信息发送给预设机器人。
通过上述步骤实现了自动化测试报错信息的通知,以便用户及时了解测试情况。
作为示例性的实施例,步骤S5按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤之后,还包括步骤S6-S8。
步骤S6:生成自动化测试报告。
本实施例中,接口测试配置信息中还包括测试报告字段,具体的字段包括用例步骤,接口url,请求方式,对应测试结果,是否通过。当然,在其它实施例中,测试报告字段还可以根据实际测试报告需要进行合理设置,本实施例中对此仅作示意性说明,不以此为限。
通过脚本add_allure方法设置测试报告的内容,默认字段为用例步骤,接口url,请求方式,对应测试结果,是否通过。不需要填写在报告中的字段可修改脚本add_allure中的参数,不修改则使用默认字段。
步骤S7:将所述自动化测试报告进行存储。
具体的,完成测试后,将生成测试报告存入测试脚本所在路径,默认为测试脚本所在路径下;也可以通过修改测试脚本代码的方式修改存放路径,存放路径是预先获取到的用户指定的存放位置。
步骤S8:发送所述自动化测试报告。
具体的,接口测试配置信息中还包括预先获取到用户提供的邮箱,之后,将自动化测试报告发送至配置信息中填写的邮箱中。
通过上述步骤生成自动化测试报告并发送,便于用户掌握自动化测试情况。
作为示例性的实施例,步骤S5按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤之后,还包括步骤S9-S11。
步骤S9:判断待测试接口是否发生变更。若没有发生变更,则执行步骤S10;若发生变更,则执行步骤S11。
具体的,由于产品需求变更或测试接口弃用等原因导致测试接口有所调整时,待测试接口发生变更。
步骤S10:若待测试接口未发生变更,则不执行任何操作。
具体的,当测试接口没有发生变更时,无需执行任何操作。
步骤S11:若待测试接口发生变更,则根据变更后的待测试接口对接口测试配置信息进行更新。
当待测试接口发生变更时,则需要将变更后的待测试接口保存到接口测试配置信息中,对待测试接口进行添加或修改,完成接口测试配置信息的更新。
上述步骤,在待测试接口发生变更时,将变更后的待测试接口保存到接口测试配置信息中,实现了接口配置信息的自动更新,以便后续根据更新后的配合信息进行自动化测试。
下面以一个具体示例对接口自动化测试的整体流程进行详细说明。整体流程主要包括两部分。
A.接口测试配置信息包含:
a.添加接口入口:需要填写测试接口的URL,请求方式(如GET,POST等),请求参数(接口开发人员提供的参数格式);
b.执行时间设置(time_server):默认为每天执行一次,可以修改执行次数和时间;
c.机器人通知接入配置:目前支持企业微信和钉钉两种机器人通知,配置信息时需要选择通知平台,填写机器人token。填写完成后,每次执行测试,都会将测试结果进行通知(测试通过,则将测试完成的用例个数和执行时间进行机器人通知,如果测试不通过,则将不通过的接口和具体产生的报错内容进行机器人通知),若用户想要变更通知内容,可前往脚本robot.py文件中修改通知内容;
d.测试报告发送邮箱设置:输入测试报告发送的邮箱。
保存以上配置信息(UrlTest_server),完成测试内容设置。
B.接口测试:
将测试工具所在的python脚本存放在本地服务器中。当在配置信息配置好后,将会调用python脚本中的UrlTest_server接口,服务器接收到UrlTest_server接口请求,会将所有配置信息以json格式写入配置文件,并存入测试工具脚本所在路径中(测试所产生的文件都默认存放在测试工具所部署的路径下)。time_server接口会将配置信息中填写的执行时间写入脚本中,进行定时执行测试用例,用户也可以通过将crontab命令写入本地终端进行定时执行脚本。当到达执行时间后,自动执行测试脚本。执行时,将从写入配置信息的文件中读取所有的测试接口,通过request方法请求接口。请求结果中state_code为200则进行下一步,否则将报错信息通过机器人进行通知;请求接口实际产生的状态码和预设状态码进行比较(默认预设状态码为:接口请求成功且返回code为200,用户可以根据实际测试的需求,修改脚本中预设状态码),测试实际状态码和预设状态码一致,则记录状态;不符合预设状态码,则将未通过测试的接口和报错内容进行机器人通知。之后继续执行下一条接口,直到全部接口测试完成。完成测试后,将生成测试报告存入脚本所在路径(默认为脚本所在路径下,用户可打开脚本通过修改代码方式自行修改测试结果存放路径),并将报告发送配置信息中填写的邮箱中。
接口自动化测试的详细步骤如图2所示。
a.根据接口测试需求获取测试接口的url,参数和请求方式(需根据开发人员提供的接口文档确定具体参数和请求方式);
b.设置执行时间(每天执行只需要设置时间;每周执行需要设置周几执行;每月执行需要设置第几周执行;每年执行需要设置第几月执行)
c.输入钉钉或企业微信机器人token(需要提前在钉钉或企业微信添加机器人,并将机器人对应的token复制)
d.设置测试报告内容,脚本add_allure方法中,默认字段为用例步骤,接口url,请求方式,对应测试结果,是否通过。不需要填写在报告中的字段可修改脚本add_allure中的参数,不修改则使用默认字段。
配置完成后,将所有信息写入文件并存入本地。之后按配置信息中输入的执行时间自动执行,每次执行结果会存入指定文件(脚本所在路径下生成result.log文件存入每次执行结果)并进行机器人通知,后续如果由于产品需求变更或其他原因导致测试接口有所调整,可以在配置信息页面添加或修改接口重新保存。
在本实施例中还提供了一种接口自动化测试系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例还提供一种接口自动化测试系统,如图3所示,包括:
第一获取模块1,用于获取待测试接口的接口测试配置信息,所述接口测试配置信息包括接口测试需求信息和测试执行信息;其中,所述接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间;
第二获取模块2,用于获取测试脚本,所述测试脚本用于执行接口自动化测试;
第一处理模块3,用于接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;
第二处理模块4,用于通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同;
第三处理模块5,用于按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试。
作为示例性的实施例,所述第三处理模块包括:第一处理单元,用于通过测试脚本中的time_server接口将配置信息中的测试执行时间写入测试脚本中;第二处理单元,用于根据配置文件和测试脚本对待测试接口进行自动化测试。
作为示例性的实施例,所述第三处理模块包括:第三处理单元,用于将配置信息中的测试执行时间写入crontab命令;第四处理单元,用于通过crontab命令,根据配置文件和测试脚本对待测试接口进行自动化测试。
作为示例性的实施例,所述第三处理模块包括:第一处理子单元,用于从配置文件中读取所有待测试接口的测试接口URL;第二处理子单元,用于向当前测试接口URL所对应的测试接口发送URL接口请求;第三处理子单元,用于接收当前测试接口URL所对应的测试接口返回的请求状态码;判断子单元,用于判断请求状态码是否等于预设状态码;第四处理子单元,用于若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过;第五处理子单元,用于若请求状态码等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试通过;第六处理子单元,用于将下一个测试接口URL作为当前测试接口URL并返回第二处理子单元,直至遍历完所有测试接口URL。
作为示例性的实施例,所述第三处理模块还包括:第七处理子单元,用于生成自动化测试不通过的报错信息,所述报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容;第八处理子单元,用于发送报错信息至预设机器人。
作为示例性的实施例,该系统还包括:第四处理模块,用于生成自动化测试报告;第五处理模块,用于将所述自动化测试报告进行存储;第六处理模块,用于发送所述自动化测试报告。
作为示例性的实施例,该系统还包括:判断模块,用于判断待测试接口是否发生变更;第七处理模块,用于若待测试接口未发生变更,则不执行任何操作;第八处理模块,用于若待测试接口发生变更,则根据变更后的待测试接口对接口测试配置信息进行更新。
本实施例中的接口自动化测试系统是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供了一种电子设备,如图4所示,该电子设备包括一个或多个处理器71以及存储器72,图4中以一个处理器71为例。
该控制器还可以包括:输入装置73和输出装置74。
处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器71可以为中央处理器(Central Processing Unit,CPU)。处理器71还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的接口自动化测试方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的接口自动化测试方法。
存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置73可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1-2所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,被执行的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述接口自动化测试方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (8)

1.一种接口自动化测试方法,其特征在于,包括:
获取待测试接口的接口测试配置信息,所述接口测试配置信息包括接口测试需求信息和测试执行信息;其中,所述接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间;
获取测试脚本,所述测试脚本用于执行接口自动化测试;
接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;
通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同;
按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试;
根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括:步骤S501:从配置文件中读取所有待测试接口的测试接口URL;步骤S502:向当前测试接口URL所对应的测试接口发送URL接口请求;步骤S503:接收当前测试接口URL所对应的测试接口返回的请求状态码;步骤S504:判断请求状态码是否等于预设状态码;步骤S505:若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过;步骤S506:若请求状态码等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试通过;步骤S507:将下一个测试接口URL作为当前测试接口URL并返回步骤S502,直至遍历完所有测试接口URL;
若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过的步骤之后,还包括:生成自动化测试不通过的报错信息,所述报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容;发送报错信息至预设机器人。
2.根据权利要求1所述的接口自动化测试方法,其特征在于,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括:
通过测试脚本中的time_server接口将配置信息中的测试执行时间写入测试脚本中;
根据配置文件和测试脚本对待测试接口进行自动化测试。
3.根据权利要求1所述的接口自动化测试方法,其特征在于,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤中,包括:
将配置信息中的测试执行时间写入crontab命令;
通过crontab命令,根据配置文件和测试脚本对待测试接口进行自动化测试。
4.根据权利要求1所述的接口自动化测试方法,其特征在于,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤之后,还包括:
生成自动化测试报告;
将所述自动化测试报告进行存储;
发送所述自动化测试报告。
5.根据权利要求1-4中任一所述的接口自动化测试方法,其特征在于,按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试的步骤之后,还包括:
判断待测试接口是否发生变更;
若待测试接口未发生变更,则不执行任何操作;
若待测试接口发生变更,则根据变更后的待测试接口对接口测试配置信息进行更新。
6.一种接口自动化测试系统,其特征在于,包括:
第一获取模块,用于获取待测试接口的接口测试配置信息,所述接口测试配置信息包括接口测试需求信息和测试执行信息;其中,所述接口测试需求信息包括待测试接口的测试接口URL、请求方式和请求参数;所述测试执行信息包括测试执行时间;
第二获取模块,用于获取测试脚本,所述测试脚本用于执行接口自动化测试;
第一处理模块,用于接收UrlTest_server接口请求,所述UrlTest_server接口请求是在调用测试脚本中的UrlTest_server接口后发送的;
第二处理模块,用于通过测试脚本中的UrlTest_server接口将接口配置信息写入配置文件中,所述配置文件的存储路径和测试脚本的存储路径相同;
第三处理模块,用于按照所述测试执行时间,根据配置文件和测试脚本对待测试接口进行自动化测试;
所述第三处理模块包括:第一处理子单元,用于从配置文件中读取所有待测试接口的测试接口URL;第二处理子单元,用于向当前测试接口URL所对应的测试接口发送URL接口请求;第三处理子单元,用于接收当前测试接口URL所对应的测试接口返回的请求状态码;判断子单元,用于判断请求状态码是否等于预设状态码;第四处理子单元,用于若请求状态码不等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试不通过;第五处理子单元,用于若请求状态码等于预设状态码,则当前测试接口URL所对应的测试接口的自动化测试通过;第六处理子单元,用于将下一个测试接口URL作为当前测试接口URL并返回第二处理子单元,直至遍历完所有测试接口URL;
所述第三处理模块还包括:第七处理子单元,用于生成自动化测试不通过的报错信息,所述报错信息包括自动化测试不通过的测试接口和所对应自动化测试不通过的报错内容;第八处理子单元,用于发送报错信息至预设机器人。
7.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-5任意一项所述的接口自动化测试方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-5任意一项所述的接口自动化测试方法。
CN202110767769.6A 2021-07-07 2021-07-07 接口自动化测试方法、系统、电子设备及存储介质 Active CN113392026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110767769.6A CN113392026B (zh) 2021-07-07 2021-07-07 接口自动化测试方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110767769.6A CN113392026B (zh) 2021-07-07 2021-07-07 接口自动化测试方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113392026A CN113392026A (zh) 2021-09-14
CN113392026B true CN113392026B (zh) 2023-12-19

Family

ID=77625434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110767769.6A Active CN113392026B (zh) 2021-07-07 2021-07-07 接口自动化测试方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113392026B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160047147A (ko) * 2014-10-22 2016-05-02 현대자동차주식회사 오토사 기반의 소프트웨어 플랫폼 검증 장치 및 그 방법
CN107220178A (zh) * 2017-05-26 2017-09-29 郑州云海信息技术有限公司 一种服务器诊断测试结果准实时展现的方法
CN107395771A (zh) * 2017-09-07 2017-11-24 中海油气(泰州)石化有限公司 全冗余负荷平衡生产过程数据采集系统
CN108932194A (zh) * 2018-06-21 2018-12-04 北京京东金融科技控股有限公司 自动化测试方法、装置、系统、介质及电子设备
CN108932195A (zh) * 2018-06-25 2018-12-04 郑州云海信息技术有限公司 一种手机app接口测试的方法及系统
CN109344053A (zh) * 2018-09-03 2019-02-15 平安科技(深圳)有限公司 接口覆盖测试方法、系统、计算机设备和存储介质
CN109446075A (zh) * 2018-09-30 2019-03-08 北京金山安全软件有限公司 一种接口测试方法及装置
CN109815139A (zh) * 2019-01-03 2019-05-28 深圳壹账通智能科技有限公司 接口测试方法、装置、计算机设备和存储介质
CN110737575A (zh) * 2018-07-20 2020-01-31 北京金山云网络技术有限公司 一种接口测试方法、装置、电子设备及存储介质
WO2020155778A1 (zh) * 2019-02-03 2020-08-06 苏州市龙测智能科技有限公司 接口自动化测试方法、测试装置、测试设备及存储介质
CN111752826A (zh) * 2020-06-03 2020-10-09 五八有限公司 一种接口测试方法、装置、电子设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160047147A (ko) * 2014-10-22 2016-05-02 현대자동차주식회사 오토사 기반의 소프트웨어 플랫폼 검증 장치 및 그 방법
CN107220178A (zh) * 2017-05-26 2017-09-29 郑州云海信息技术有限公司 一种服务器诊断测试结果准实时展现的方法
CN107395771A (zh) * 2017-09-07 2017-11-24 中海油气(泰州)石化有限公司 全冗余负荷平衡生产过程数据采集系统
CN108932194A (zh) * 2018-06-21 2018-12-04 北京京东金融科技控股有限公司 自动化测试方法、装置、系统、介质及电子设备
CN108932195A (zh) * 2018-06-25 2018-12-04 郑州云海信息技术有限公司 一种手机app接口测试的方法及系统
CN110737575A (zh) * 2018-07-20 2020-01-31 北京金山云网络技术有限公司 一种接口测试方法、装置、电子设备及存储介质
CN109344053A (zh) * 2018-09-03 2019-02-15 平安科技(深圳)有限公司 接口覆盖测试方法、系统、计算机设备和存储介质
CN109446075A (zh) * 2018-09-30 2019-03-08 北京金山安全软件有限公司 一种接口测试方法及装置
CN109815139A (zh) * 2019-01-03 2019-05-28 深圳壹账通智能科技有限公司 接口测试方法、装置、计算机设备和存储介质
WO2020155778A1 (zh) * 2019-02-03 2020-08-06 苏州市龙测智能科技有限公司 接口自动化测试方法、测试装置、测试设备及存储介质
CN111752826A (zh) * 2020-06-03 2020-10-09 五八有限公司 一种接口测试方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Vue的自动化测试平台的设计与实现;李宗昊;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-136 *

Also Published As

Publication number Publication date
CN113392026A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
CN110716878B (zh) 一种接口自动化测试方法、装置及系统
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN113127347B (zh) 一种接口测试方法、装置、设备及可读存储介质
CN105302722B (zh) Cts自动测试方法及装置
US11573780B2 (en) Automated generation of status chains for software updates
CN110659202A (zh) 客户端自动化测试方法及装置
CN110569194A (zh) 接口测试方法、装置、电子设备及存储介质
CN112817857A (zh) 基于JMeter和JenKins的自动监控网站异常方法及计算机设备
CN113778898A (zh) 用户界面自动化测试方法、装置、电子设备及存储介质
CN110908907A (zh) Web页面测试方法、装置、设备及存储介质
CN113392026B (zh) 接口自动化测试方法、系统、电子设备及存储介质
CN117497036A (zh) NAND Flash颗粒模拟装置、读写方法和系统
CN113094251B (zh) 嵌入式系统测试方法、装置、计算机设备和存储介质
CN116860608A (zh) 一种接口测试方法、装置、计算设备及存储介质
CN116049011A (zh) 一种测试环境的部署方法、装置、电子设备及存储介质
CN107678917B (zh) 测试机自动化管理方法、装置、设备及存储介质
CN114510421A (zh) 一种测试方法、装置、芯片及模组设备
CN113986639A (zh) 一种服务器功能测试方法、装置、设备及存储介质
CN113238953A (zh) Ui自动化测试方法、装置、电子设备和存储介质
CN111813665A (zh) 一种基于python的大数据平台接口数据测试方法和系统
CN111597101A (zh) Sdk接入状态检测方法、计算机设备及计算机可读存储介质
CN115510782B (zh) 定位验证错误的方法、电子设备和存储介质
CN109522205A (zh) 一种仿真测试的方法、装置、计算机存储介质及终端
CN109783289B (zh) 用于测试服务器bmc web界面中内存信息稳定性的方法及系统
CN115576571A (zh) Pc机os系统安装检查方法、系统、计算机设备及存储介质

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