CN110245083A - 一种基于python的接口自动化测试方法 - Google Patents
一种基于python的接口自动化测试方法 Download PDFInfo
- Publication number
- CN110245083A CN110245083A CN201910502362.3A CN201910502362A CN110245083A CN 110245083 A CN110245083 A CN 110245083A CN 201910502362 A CN201910502362 A CN 201910502362A CN 110245083 A CN110245083 A CN 110245083A
- Authority
- CN
- China
- Prior art keywords
- test
- python
- method based
- testing method
- case
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于python的接口自动化测试方法,通过python编写测试脚本,excel管理测试数据;运行脚本使用python的parametrized函数循环读取excel中测试数据并传参;对每组测试数据返回响应报文,然后对响应报文进行断言,最后使用标准库HTMLTestRunnerhtml生成html的测试报告,本发明的是基于python的接口自动化测试方法一种无需单独封装读写excel的方法,也不需要读取数据后再次组装成json格式,达到用例脚本逻辑统一、可复用、编写代码更少、数据易于维护的目的;大大提高了工作效率,节省时间和人力成本。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种基于python的接口自动化测试方法。
背景技术
互联网高速发展的今天,无论公司需求还是客户需求都对软件产品的质量要求越来越高,在开发过程中提前根据需求使用大量相关数据对软件接口功能进行测试已成为测试过程中必不可少的一部分。
然而,众所周知,普通的python接口自动化框架不仅需要单独封装读写excel的方法;在脚本中还要对读取的接口参数再次组装成json格式。不但增加了代码量。数据维护也更麻烦;且整个框架逻辑不够简洁。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种基于python的接口自动化测试方法,可实现无需单独封装读写excel,也不需要读取数据后再次组装成json格式,达到用例脚本逻辑统一、可复用的目的,且编写代码更少,数据更易于维护;大大提高了工作效率,节省时间和人力成本。
为了达到上述的技术效果,本发明采取以下技术方案:
一种基于python的接口自动化测试方法,包括以下步骤:
A.按模板编写测试参数、接口参数和断言期望值,组成测试用例集;
B.运行脚本,使用parametrized函数遍历测试用例参数,然后发送请求并对每组测试用例参数返回响应报文;
C.提取返回的响应报文的相关内容,并与提前设置的期望值进行对比;
D.利用标准库HTMLTestRunner生成html测试报告。
进一步地,所述步骤A具体为:在excel中以一个shell表单为单位编写单个接口的所有测试用例数据形成测试用例集,具体按一行一个用例数据的格式,其中,测试用例数据包含用例序号、测试参数、接口方法、接口地址、断言内容。
进一步地,所述测试参数是直接按字典的格式写入。
进一步地,所述步骤B具体包括以下步骤:
B1.使用python语言每个接口对应编写一个测试脚本;
B2.使用python语言编写测试用例套件模块,以变量的方式传入测试脚本名称列表,形成测试用例套件;
B3.执行测试套件中的每个测试脚本;
B4.使用parametrized函数遍历测试用例参数,然后发送请求并对每组测试用例参数返回响应报文。
进一步地,所述步骤B2中以变量的方式传入测试脚本名称列表时具体是变量以数组方式传入测试脚本名称列表。
进一步地,所述步骤B3具体为:依次运行步骤B2中的测试用例套件中的各测试脚本,循环从excel中按行读取数据。
进一步地,所述步骤D中还包括在所述html测试报告中统计所有测试用例的通过、失败、报错三种测试结果的数量和每条测试用例返回的报文以及断言。
本发明与现有技术相比,具有以下的有益效果:
本发明的基于python的接口自动化测试方法,通过python编写测试脚本,excel管理测试数据;运行脚本使用python的parametrized函数循环读取excel中测试数据并传参;对每组测试数据返回响应报文,然后对响应报文进行断言,最后使用标准库HTMLTestRunnerhtml生成html的测试报告,是一种无需单独封装读写excel的方法,也不需要读取数据后再次组装成json格式,达到用例脚本逻辑统一、可复用、编写代码更少、数据易于维护的目的;大大提高了工作效率,节省时间和人力成本。
附图说明
图1是本发明的基于python的接口自动化测试方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
如图1所示,一种基于python的接口自动化测试方法,包括以下步骤:
步骤一.按模板编写测试参数、接口参数和断言期望值,组成测试用例集;
具体为:在excel中以一个shell表单为单位编写单个接口的所有测试用例数据形成测试用例集,具体按一行一个用例数据的格式,其中,测试用例数据包含用例序号、测试参数、接口方法、接口地址、断言内容。
作为优选,本实施例中,测试参数是直接按字典的格式写入,无需在代码中再组装一遍。如果有其他参数需要可以灵活的在excel增加相应列。
步骤二.运行脚本,使用parametrized函数遍历测试用例参数,然后发送请求并对每组测试用例参数返回响应报文;具体包括:
首先,使用python语言每个接口对应编写一个测试脚本;其中,本实施例中,所有测试脚本均按统一步骤编写,如包含使用parametrized函数获取步骤一中excel存入的数据、发送请求、对返回报文断言等;
其次,使用python语言编写测试用例套件模块,以变量的方式传入测试脚本名称列表,形成测试用例套件;其中,该变量具体是以数组方式写入需要测试的脚本名称;
然后,执行测试套件中的每个测试脚本;具体为依次运行上一步骤中的测试用例套件中的各测试脚本,循环从excel中按行读取数据;然后进行传参、调用接口、对返回数据进行断言等;
最后,使用parametrized函数遍历测试用例参数,然后发送请求并对每组测试用例参数返回响应报文。
步骤三.提取返回的响应报文的相关内容,并与提前设置的期望值进行对比;
步骤四.利用标准库HTMLTestRunner生成html测试报告,并在所述html测试报告中统计所有测试用例的通过、失败、报错三种测试结果的数量和每条测试用例返回的报文以及断言。
其中,本实施例中的HTMLTestRunner标准库只是python的一个标准库,实际中还可以根据需要自定义修改这个库,生成一个需要的html报告。
由上可知,本发明的基于python的接口自动化测试方法,通过python编写测试脚本,excel管理测试数据;运行脚本使用python的parametrized函数循环读取excel中测试数据并传参;对每组测试数据返回响应报文,然后对响应报文进行断言,最后使用标准库HTMLTestRunnerhtml生成html的测试报告,是一种无需单独封装读写excel的方法,也不需要读取数据后再次组装成json格式,达到用例脚本逻辑统一、可复用、编写代码更少、数据易于维护的目的;大大提高了工作效率,节省时间和人力成本。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (7)
1.一种基于python的接口自动化测试方法,其特征在于,包括以下步骤:
A.按模板编写测试参数、接口参数和断言期望值,组成测试用例集;
B.运行脚本,使用parametrized函数遍历测试用例参数,然后发送请求并对每组测试用例参数返回响应报文;
C.提取返回的响应报文的相关内容,并与提前设置的期望值进行对比;
D.利用标准库HTMLTestRunner生成html测试报告。
2.根据权利要求1所述的一种基于python的接口自动化测试方法,其特征在于,所述步骤A具体为:在excel中以一个shell表单为单位编写单个接口的所有测试用例数据形成测试用例集,具体按一行一个用例数据的格式,其中,测试用例数据包含用例序号、测试参数、接口方法、接口地址、断言内容。
3.根据权利要求2所述的一种基于python的接口自动化测试方法,其特征在于,所述测试参数是直接按字典的格式写入。
4.根据权利要求1所述的一种基于python的接口自动化测试方法,其特征在于,所述步骤B具体包括以下步骤:
B1.使用python语言每个接口对应编写一个测试脚本;
B2.使用python语言编写测试用例套件模块,以变量的方式传入测试脚本名称列表,形成测试用例套件;
B3.执行测试套件中的每个测试脚本;
B4.使用parametrized函数遍历测试用例参数,然后发送请求并对每组测试用例参数返回响应报文。
5.根据权利要求4所述的一种基于python的接口自动化测试方法,其特征在于,所述步骤B2中以变量的方式传入测试脚本名称列表时具体是变量以数组方式传入测试脚本名称列表。
6.根据权利要求4所述的一种基于python的接口自动化测试方法,其特征在于,所述步骤B3具体为:依次运行步骤B2中的测试用例套件中的各测试脚本,循环从excel中按行读取数据。
7.根据权利要求1所述的一种基于python的接口自动化测试方法,其特征在于,所述步骤D中还包括在所述html测试报告中统计所有测试用例的通过、失败、报错三种测试结果的数量和每条测试用例返回的报文以及断言。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502362.3A CN110245083A (zh) | 2019-06-11 | 2019-06-11 | 一种基于python的接口自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502362.3A CN110245083A (zh) | 2019-06-11 | 2019-06-11 | 一种基于python的接口自动化测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110245083A true CN110245083A (zh) | 2019-09-17 |
Family
ID=67886535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910502362.3A Pending CN110245083A (zh) | 2019-06-11 | 2019-06-11 | 一种基于python的接口自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245083A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489349A (zh) * | 2019-09-23 | 2019-11-22 | 四川长虹电器股份有限公司 | 一种基于json配置文件的接口测试方法 |
CN110825619A (zh) * | 2019-10-12 | 2020-02-21 | 深圳壹账通智能科技有限公司 | 接口测试用例自动生成方法、装置及存储介质 |
CN110955600A (zh) * | 2019-11-27 | 2020-04-03 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN111061645A (zh) * | 2019-12-26 | 2020-04-24 | 中科曙光国际信息产业有限公司 | 一种用于应用程序接口的接口自动化测试方法和装置 |
CN111143192A (zh) * | 2019-11-28 | 2020-05-12 | 叮当快药科技集团有限公司 | 接口自动化测试方法、装置以及相关产品 |
CN111209204A (zh) * | 2020-01-06 | 2020-05-29 | 杭州涂鸦信息技术有限公司 | 一种基于JSON的web自动化测试方法及其系统和装置 |
CN111444111A (zh) * | 2020-04-15 | 2020-07-24 | 深圳市万睿智能科技有限公司 | 基于python的性能测试方法、装置、计算机设备及存储介质 |
CN111488274A (zh) * | 2020-03-27 | 2020-08-04 | 杭州海兴电力科技股份有限公司 | 一种测试用例构建方法、测试方法、设备及存储介质 |
CN111666183A (zh) * | 2020-04-13 | 2020-09-15 | 芜湖宏景电子股份有限公司 | 一种硬件回路自动测试方法 |
CN111723009A (zh) * | 2020-06-12 | 2020-09-29 | 芯河半导体科技(无锡)有限公司 | 一种python自动化测试系列产品的框架系统 |
CN111813665A (zh) * | 2020-06-29 | 2020-10-23 | 四川长虹电器股份有限公司 | 一种基于python的大数据平台接口数据测试方法和系统 |
CN112100080A (zh) * | 2020-11-03 | 2020-12-18 | 广州市玄武无线科技股份有限公司 | 控件测试方法、装置、终端设备和计算机可读存储介质 |
CN112241369A (zh) * | 2020-10-16 | 2021-01-19 | 四川长虹电器股份有限公司 | 基于python的接口自动化测试方法 |
CN113656305A (zh) * | 2021-08-16 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 一种自动生成测试套件方法及相关装置 |
CN113778896A (zh) * | 2021-09-26 | 2021-12-10 | 杭州安恒信息技术股份有限公司 | 一种接口的测试方法、装置、设备及介质 |
CN113806150A (zh) * | 2021-08-16 | 2021-12-17 | 济南浪潮数据技术有限公司 | 一种存储服务器远程测试的方法、系统、设备和存储介质 |
CN115811476A (zh) * | 2022-12-01 | 2023-03-17 | 四川天邑康和通信股份有限公司 | 一种统计octoscope测试结果的方法、电子设备及可读存储介质 |
CN117370217A (zh) * | 2023-12-08 | 2024-01-09 | 天津华来科技股份有限公司 | 一种基于python的接口测试结果自动生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096631A (zh) * | 2009-12-11 | 2011-06-15 | 华为技术有限公司 | 接口测试方法及装置 |
CN107203473A (zh) * | 2017-05-26 | 2017-09-26 | 四川长虹电器股份有限公司 | 自动扩展接口测试用例的自动化测试系统与方法 |
WO2018072095A1 (zh) * | 2016-10-18 | 2018-04-26 | 深圳市福斯康姆智能科技有限公司 | 一种压力测试管理方法及系统 |
CN109189684A (zh) * | 2018-08-28 | 2019-01-11 | 四川长虹电器股份有限公司 | 基于Python的接口自动化测试方法 |
CN109614313A (zh) * | 2018-10-25 | 2019-04-12 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及计算机可读存储介质 |
-
2019
- 2019-06-11 CN CN201910502362.3A patent/CN110245083A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096631A (zh) * | 2009-12-11 | 2011-06-15 | 华为技术有限公司 | 接口测试方法及装置 |
WO2018072095A1 (zh) * | 2016-10-18 | 2018-04-26 | 深圳市福斯康姆智能科技有限公司 | 一种压力测试管理方法及系统 |
CN107203473A (zh) * | 2017-05-26 | 2017-09-26 | 四川长虹电器股份有限公司 | 自动扩展接口测试用例的自动化测试系统与方法 |
CN109189684A (zh) * | 2018-08-28 | 2019-01-11 | 四川长虹电器股份有限公司 | 基于Python的接口自动化测试方法 |
CN109614313A (zh) * | 2018-10-25 | 2019-04-12 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及计算机可读存储介质 |
Non-Patent Citations (4)
Title |
---|
BLACKBIRD0423: "python习题:unittest参数化-数据从文件或excel中读取", 《HTTPS://WWW.ITDAAN.COM/BLOG/2018/03/11/D8E7095490F45A7E964819E234C4DD51.HTML》 * |
CANISPLUS: "Selenium+ParamUnittest+HTMLTestReportCN实现参数化自动化测试", 《HTTPS://WWW.CNBLOGS.COM/XKEN/ARTICLES/8908114.HTML》 * |
LYKION_881210: "Python+Excel接口测试", 《HTTPS://BLOG.CSDN.NET/LYKIO_881210/ARTICLE/DETAILS/87279182》 * |
RR1990: "python:unittest测试套件和批量用例的执行", 《HTTPS://WWW.JIANSHU.COM/P/D4313667B2B8》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489349A (zh) * | 2019-09-23 | 2019-11-22 | 四川长虹电器股份有限公司 | 一种基于json配置文件的接口测试方法 |
CN110825619A (zh) * | 2019-10-12 | 2020-02-21 | 深圳壹账通智能科技有限公司 | 接口测试用例自动生成方法、装置及存储介质 |
CN110955600B (zh) * | 2019-11-27 | 2023-11-10 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN110955600A (zh) * | 2019-11-27 | 2020-04-03 | 中国银行股份有限公司 | 接口测试方法及装置 |
CN111143192A (zh) * | 2019-11-28 | 2020-05-12 | 叮当快药科技集团有限公司 | 接口自动化测试方法、装置以及相关产品 |
CN111061645A (zh) * | 2019-12-26 | 2020-04-24 | 中科曙光国际信息产业有限公司 | 一种用于应用程序接口的接口自动化测试方法和装置 |
CN111209204A (zh) * | 2020-01-06 | 2020-05-29 | 杭州涂鸦信息技术有限公司 | 一种基于JSON的web自动化测试方法及其系统和装置 |
CN111209204B (zh) * | 2020-01-06 | 2023-09-22 | 杭州涂鸦信息技术有限公司 | 一种基于JSON的web自动化测试方法及其系统和装置 |
CN111488274A (zh) * | 2020-03-27 | 2020-08-04 | 杭州海兴电力科技股份有限公司 | 一种测试用例构建方法、测试方法、设备及存储介质 |
CN111488274B (zh) * | 2020-03-27 | 2023-10-24 | 杭州海兴电力科技股份有限公司 | 一种测试用例构建方法、测试方法、设备及存储介质 |
CN111666183A (zh) * | 2020-04-13 | 2020-09-15 | 芜湖宏景电子股份有限公司 | 一种硬件回路自动测试方法 |
CN111444111A (zh) * | 2020-04-15 | 2020-07-24 | 深圳市万睿智能科技有限公司 | 基于python的性能测试方法、装置、计算机设备及存储介质 |
CN111723009A (zh) * | 2020-06-12 | 2020-09-29 | 芯河半导体科技(无锡)有限公司 | 一种python自动化测试系列产品的框架系统 |
CN111813665A (zh) * | 2020-06-29 | 2020-10-23 | 四川长虹电器股份有限公司 | 一种基于python的大数据平台接口数据测试方法和系统 |
CN112241369A (zh) * | 2020-10-16 | 2021-01-19 | 四川长虹电器股份有限公司 | 基于python的接口自动化测试方法 |
CN112100080A (zh) * | 2020-11-03 | 2020-12-18 | 广州市玄武无线科技股份有限公司 | 控件测试方法、装置、终端设备和计算机可读存储介质 |
CN113806150A (zh) * | 2021-08-16 | 2021-12-17 | 济南浪潮数据技术有限公司 | 一种存储服务器远程测试的方法、系统、设备和存储介质 |
CN113656305A (zh) * | 2021-08-16 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 一种自动生成测试套件方法及相关装置 |
CN113806150B (zh) * | 2021-08-16 | 2024-02-13 | 济南浪潮数据技术有限公司 | 一种存储服务器远程测试的方法、系统、设备和存储介质 |
CN113778896A (zh) * | 2021-09-26 | 2021-12-10 | 杭州安恒信息技术股份有限公司 | 一种接口的测试方法、装置、设备及介质 |
CN115811476A (zh) * | 2022-12-01 | 2023-03-17 | 四川天邑康和通信股份有限公司 | 一种统计octoscope测试结果的方法、电子设备及可读存储介质 |
CN117370217A (zh) * | 2023-12-08 | 2024-01-09 | 天津华来科技股份有限公司 | 一种基于python的接口测试结果自动生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245083A (zh) | 一种基于python的接口自动化测试方法 | |
CN110297774A (zh) | 一种基于python的接口自动化测试方法 | |
CN109189684B (zh) | 基于Python的接口自动化测试方法 | |
CN110716870B (zh) | 服务的自动化测试方法及装置 | |
CN108897687A (zh) | 一种基于数据驱动的api自动化测试方法和系统 | |
CN108763743B (zh) | 验证平台、方法及电子设备 | |
CN109614324A (zh) | 一种测试用例生成方法和装置 | |
CN103631713A (zh) | Erp软件自动化测试系统及方法 | |
CN107678942A (zh) | 一种api自动化测试方法 | |
CN114880240B (zh) | 一种物联网设备自动化测试系统、方法、存储介质及设备 | |
CN106406858A (zh) | 一种基于配置文件的流式统计定义及运行方法 | |
CN108255702A (zh) | 一种测试用例创建方法、装置、设备及存储介质 | |
CN112306861A (zh) | 一种基于Unittest和Jenkins工具的接口自动化测试体系及方法 | |
CN112052172A (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
CN108647353A (zh) | 一种实时核对数据的方法、装置 | |
CN106778280A (zh) | 一种填充式远程漏洞PoC编写方法及漏洞检测方法 | |
CN110209584A (zh) | 一种测试数据自动生成方法和相关装置 | |
CN112433948A (zh) | 一种基于网络数据分析的仿真测试系统及方法 | |
CN105279092A (zh) | 一种软件测试的方法及装置 | |
CN108628734A (zh) | 一种功能程序调试方法和终端 | |
CN116955097A (zh) | 测试流程的展示方法、装置和测试流程展示系统 | |
CN117370217B (zh) | 一种基于python的接口测试结果自动生成方法 | |
CN116090380A (zh) | 数字集成电路验证的自动化方法及装置、存储介质和终端 | |
CN109144867B (zh) | 一种测试方法及测试系统 | |
CN112433933A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190917 |