一种基于python设计的接口自动化测试方法及装置与流程

文档序号:30757325发布日期:2022-07-13 12:10阅读:136来源:国知局
一种基于python设计的接口自动化测试方法及装置与流程

1.本发明涉及一种基于python设计的接口自动化测试方法及装置,属于自动化测试技术领域。


背景技术:

2.接口测试是测试系统组件间接口的一个重要得测试环节。接口测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试原理是模拟客户端向服务器发送请求,服务器端接收请求后对响应的请求作出处理,并向客户端返回相应结果,客户端接收结果的一个过程。
3.由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以接口测试在软件得开发周期中显得尤为得重要。同时,接口测试相对比较容易实现自动化持续集成,且相对ui自动化也较为稳定,可以减少测试人力成本和时间成本得投入,缩短测试周期,支持后端快速发版需求,接口测试持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求,需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
4.目前市面主流的项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、robotframework+httplibrary等。
5.postman门槛低、上手快、跨平台,但是不能操作文件相关的操作,不能读写数据库,但是不能封装公共函数,不支持用例间的跳转、重试等;jmeter作为一款专业的性能测试工具,用来进行接口测试,缺乏对测试脚本的管理和维护地便利性,接口或者测试组件的更改会影响其他测试组件的执行结果,测试脚本频繁更改会影响测试结果的准确性,维护成本很高;robotframework+httplibrary对测试人员的代码能力有一定要求,界面反应速度慢,经常卡死,导入测试库有时会异常。
6.虽然市面上能够选择的接口测试工具和方案较多,但是没有完全适用于现有项目的方案,需要对工具的配置和操作比较熟悉,甚至需要进行一定的定制化开发才能满足项目需要,因此需要自己开发一种更灵活的接口测试框架来适应本项目测试的需要。


技术实现要素:

7.本发明的目的在于克服现有技术中的不足,提供一种基于python设计的接口自动化测试方法及装置,无需频繁的脚本参数修改,只需在测试用例中维护被测系统接口测试场景和测试参数,就能读取测试用例,批量执行接口自动化测试并生成报告邮件发送,以图表的形式呈现接口自动化测试执行成功率、通过失败数量等测试结果,报告结果清晰简单明了,可以满足当前项目测试的需要。
8.为达到上述目的,本发明是采用下述技术方案实现的:
9.第一方面,本发明提供了一种基于python设计的接口自动化测试方法,包括:
10.读取config.ini配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法初始化系统数据库,创建基础测试数据;
11.调用预先封装好的方法读取excel业务测试用例信息,将结果以json数据格式返回;
12.请求被测试系统接口,根据读取的业务测试用例数据,调用不同的接口请求并得到结果;
13.将调用不同的接口请求得到的结果组装成json格式的数据,同时获取excel表格中预期的结果数据,两者进行正则判断对比,判断结果写入excel结果数据表中;
14.批量调用用例,执行并生成测试报告,以html的形式发送到指定的邮箱。
15.进一步的,所述读取config.ini配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法初始化系统数据库,创建基础测试数据,包括:
16.导入包、数据库、配置文件读取方法、os模块、sys模块;
17.使用python定义一个类方法,自定义数据库操作方法,包括删除、插入、初始化表数据的方法;
18.执行数据库操作方法,初始化接口测试数据,并确认数据初始化成功。
19.进一步的,所述配置文件信息包括测试数据库的ip、端口信息、user、password、db_name。
20.进一步的,所述调用预先封装好的方法读取excel业务测试用例信息,将结果以json数据格式返回,包括:
21.定义一个读取函数类,用于读取excel文件数据;
22.定义一个读取方法,用于读取第一行的数据内容、列表格式;
23.定义一个for循环方法,用于读取每一行的数据内容、列表格式;
24.将读取到的数据内容按照key-value键值对转换为字典格式,然后定义一个数组格式,将字典数据添加到数组中,并返回json格式返回,判断格式内容是否为空,如果为空返回none。
25.进一步的,所述读取方法会判断读取到的数据格式,并作出响应的数据处理方式,以返回正确的的报文。
26.进一步的,所述请求被测试系统接口,根据读取的业务测试用例数据,调用不同的接口请求并得到结果,包括:
27.新建一个类方法,定义requests函数,用于实现被测试系统接口请求;
28.从读取的业务测试用例数据表格中获取传参、请求url,请求方式,根据参数不同调用不通的接口请求函数;
29.返回接口请求结果,并以文本的格式返回。
30.进一步的,所述接口请求函数会根据参数类型、请求方法不同改变接口请求方式,返回对应的结果。
31.进一步的,所述将调用不同的接口请求得到的结果组装成json格式的数据,同时获取excel表格中预期的结果数据,两者进行正则判断对比,判断结果写入excel结果数据表中,包括:
32.定义一个业务测试用例类,定义初始化的请求方法;
33.调用excel_operation中的read_excel方法读取测试数据,并装饰测试数据以使用数据驱动生成业务测试用例;
34.定义被测试系统接口测试方法,解析请求结果,获得有用的的数据,并与excel表格获取的预期结果数据对比判断;
35.调用excel_operation中的excel_write方法将判断结果写入excel结果数据表保存。
36.进一步的,所述批量调用用例,执行并生成测试报告,以html的形式发送到指定的邮箱,包括:
37.定义加载业务测试用例的方法,以加载全部或指定路径、名称的业务测试用例;
38.定义执行业务测试用例的方法,调用beautifulreport模块生成最新的报告,调用发送邮件模块,发送报告到指定的邮箱。
39.第二方面,本发明提供一种基于python设计的接口自动化测试装置,包括:
40.读取config.ini配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法初始化系统数据库,创建基础测试数据的模块;
41.调用预先封装好的方法读取excel业务测试用例信息,将结果以json数据格式返回的模块;
42.请求被测试系统接口,根据读取的业务测试用例数据,调用不同的接口请求并得到结果的模块;
43.将调用不同的接口请求得到的结果组装成json格式的数据,同时获取excel表格中预期的结果数据,两者进行正则判断对比,判断结果写入excel结果数据表中的模块;
44.批量调用用例,执行并生成测试报告,以html的形式发送到指定的邮箱的模块。
45.与现有技术相比,本发明所达到的有益效果:
46.本发明提供一种基于python设计的接口自动化测试方法,通过python方法读excel取测试用例数据,批量生成接口测试请求,并测试结果和接口响应消息回写到测试用例文件中,并且输出测试报告,与现有的使用开源的或者定制化开发接口测试工具相比,无需频繁的工具参数配置和修改,无需维护工具的测试脚本和二次开发测试工具,本发明方法中,业务测试用例与接口测试代码分离,业务测试用例进行参数化,提取作为接口测试代码的入参,解决了测试数据不可控的问题,方便测试数据的维护;业务测试用例使用excel进行数据维护,格式整洁高效,可以覆盖多种测试场景、输入输出边界分析、参数组合测试等;测试人员只需要维护excel测试用例中的被测系统场景数据和参数数据,即可执行接口自动化测试,并可根据测试结果作出相应的调整和优化测试用例,提高测试的效率和准确性,节约了大量的人力时间。
附图说明
47.图1是本发明实施例提供的一种基于python设计的接口自动化测试方法的流程示意图。
具体实施方式
48.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
49.实施例1
50.本实施例介绍一种基于python设计的接口自动化测试方法,包括:
51.读取config.ini配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法初始化系统数据库,创建基础测试数据;
52.调用预先封装好的方法读取excel业务测试用例信息,将结果以json数据格式返回;
53.请求被测试系统接口,根据读取的业务测试用例数据,调用不同的接口请求并得到结果;
54.将调用不同的接口请求得到的结果组装成json格式的数据,同时获取excel表格中预期的结果数据,两者进行正则判断对比,判断结果写入excel结果数据表中;
55.批量调用用例,执行并生成测试报告,以html的形式发送到指定的邮箱。
56.本实施例提供的基于python设计的接口自动化测试方法,其应用过程具体涉及如下步骤:
57.1.新建config目录,用于存放文件配置,例如:
58.新增config.ini配置文件,用于配置mysql信息,包含ip、port、user、password、数据库名称等;
59.邮件相关信息,包括发送邮箱服务器信息、发件人邮箱、收件人邮箱、发送邮箱用户名/密码、邮件主题等
60.2.新增data目录,用于存放业务测试用例文件:
61.业务测试用例使用excel维护,信息包含测试模块、编号、接口请求url、请求类型、请求参数、headers、body、type、status_code、msg、result等3.新增common目录,包含常用的操作方法py脚本文件,例如:
62.新增config_read.py脚本,用于读取、写入config.ini配置文件;
63.新增db_reset.py脚本,封装了自定义数据库操作方法,用于初始化数据库;
64.新增excel_operation.py脚本,封装了用于读取和写入excel文件数据的操作;
65.新增requests.py脚本,用于被测试系统接口请求,并返回解析之后的数据,用于接口测试逻辑代码调用,与预期结果断言对比。
66.新增email.py脚本,封装了发送邮件的功能,用于读取配置文件中的邮件信息,发送html格式的接口自动化测试报告。
67.4.新增testcase目录,用于存放接口自动化测试相关代码文件,
68.新增testcase_xxproject.py,包含测试框架的接口测试逻辑代码,定义被测试系统接口测试方法,解析请求结果,获得接口请求结果,并与excel表格获取的预期结果数据对比判断。代码提供了根据测试数据生成用例的功能,将测试数据作为一个参数传递给测试用例,一条数据对应生成一条测试用例,如果data里面有多个数据那么就对应生成多条测试用例。如果data里放的类似是元组、列表等这样的序列类型的数据,data会把他们当成是一个整体,即一个测试数据。用例之间相互隔离,失败的情况下不会影响其他测试用例。
接口测试逻辑代码提供了测试结果写入excel功能,会将测试结果写入业务测试用例excel。
69.5.新增report目录,用于存放测试报告文件
70.新增run_all.py脚本,定义了加载测试用例的方法,批量调用测试用例,执行并调用beautifulreport模块生成最新的报告,报告保存到本地指定路径,如果不存在就创建,同时调用发送邮件函数方法,将报告以html的形式发送到指定的邮箱。
71.接口自动化测试报告包含报告汇总、详细数据等信息,以图表的形式呈现测试结果,结果清晰易懂,报告汇总了用例名称、用例总数、用例通过数量、失败数量、跳过数量、开始结束时间等。
72.本发明的有益效果是:
73.本发明是一种基于python设计的接口自动化测试方法,通过python方法读excel取测试用例数据,批量生成接口测试请求,并测试结果和接口响应消息回写到测试用例文件中,并且输出测试报告。与现有的使用开源的或者定制化开发接口测试工具相比,无需频繁的工具参数配置和修改,无需维护工具的测试脚本和二次开发测试工具。本发明方法中,业务测试用例与接口测试代码分离,业务测试用例进行参数化,提取作为接口测试代码的入参,解决了测试数据不可控的问题,方便测试数据的维护。业务测试用例使用excel进行数据维护,格式整洁高效,可以覆盖多种测试场景、输入输出边界分析、参数组合测试等。测试人员只需要维护excel测试用例中的被测系统场景数据和参数数据,即可执行接口自动化测试,并可根据测试结果作出相应的调整和优化测试用例,提高测试的效率和准确性,节约了大量的人力时间。
74.实施例2
75.本实施例提供一种基于python设计的接口自动化测试装置,包括:
76.读取config.ini配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法初始化系统数据库,创建基础测试数据的模块;
77.调用预先封装好的方法读取excel业务测试用例信息,将结果以json数据格式返回的模块;
78.请求被测试系统接口,根据读取的业务测试用例数据,调用不同的接口请求并得到结果的模块;
79.将调用不同的接口请求得到的结果组装成json格式的数据,同时获取excel表格中预期的结果数据,两者进行正则判断对比,判断结果写入excel结果数据表中的模块;
80.批量调用用例,执行并生成测试报告,以html的形式发送到指定的邮箱的模块。
81.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1