前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口自动化测试--框架设计思路

接口自动化测试--框架设计思路

作者头像
用户5521279
发布2019-11-07 15:30:25
1.2K0
发布2019-11-07 15:30:25
举报
文章被收录于专栏:搜狗测试搜狗测试

接口自动化测试--框架设计思路

1

前言

之前文章跟大家分享了一下自己在接口自动化测试中进行测试准备的一些相关知识点,接下来本篇文章详细分享一下接口自动化框架设计的思路总结,希望能对初次探索接口自动化测试的小伙伴们有一些思路上的帮助。

小编是以python+requests+unittest

+HTMLTestRunner为基础进行的接口自动化探索,下面结合接口测试的测试点介绍一下整个框架的搭建思路:

我们知道接口测试本质是对数据的测试,调用接口,输入一些数据,随后,接口返回一些数据,最后验证接口返回数据的正确性。

2

基础

首先要理清楚进行接口测试需要了解的内容:

1、接口文档

a.接口协议--基于http协议的接口

b.接口域名--XXX.XX.XX

c.接口请求类型--业务中只涉及到get和post类型,其中又包含认证校验机制

d.接口参数

e.接口的返回--包含http状态码、业务状态码、实际业务逻辑对应的返回内容

2、 接口内部逻辑

a.接口内部逻辑对应的数据库及redis的操作(增删改查)

3、自动校验的结果

4、测试结果的展示

5、必要的解释说明

a.文档

b.注释

3

具体内容

小编在选择接口请求参数分离方式时对csv、excel、xml进行了对比,最终选择xml格式。

由于excel或csv格式需要维护一组测试case和参数对应关系,每次增删改case会需要同时修改excel或csv中对应的内容,而xml格式可以根据功能模块及接口设计参数文件的结构目录,无需再对接口case和对应的参数进行对应修改,所以选择了借鉴使用友组项目中接口自动化框架,也使用xml获取参数的模式,项目结构具体如下:

整个框架思路说明:

一、最开始就需要建立一个readme文档,即doc目录可以对框架进行整体的说明、写case具体的思路说明等。

二、既然是通过代码的形式进行自动化测试,就有可能会出现编写过程中的问题调试,所以需要有对应的log目录,即logs目录。便于case执行失败后进行问题定位

三、请求参数、按功能模块,根据开发给的的文档,以xml文件的格式对每个接口进行添加,如datafile/input/模块名/接口名 ,及对整个所有接口参数进行检索的interface.xml

四、公共api封装,在进行接口测试前通过文档我们可以知道请求域名、请求方法、公共请求参数(xml保存默认参数)、业务逻辑需要用的接口的公共参数等,可以对这些内容进行封装,如src/common/request_interface.py

包含对接口请求的封装,将其封装成通用的,这样可以满足业务所需要的get和post两种请求。大家可以自行根据自己业务请求的特点结合request库提供的方法进行封装。

如src/common/constant.py包含对域名、某一功能模块参数内容格式化获取、url获取、接口鉴别用户方法等(此处不做展示)

由于业务特点,对接口进行请求前可能需要构造某一种返回逻辑的测试环境,如模拟新用户功能,测试账号名是手机号于已经注册但又没有那么手机号可供每次作为新用户进行注册,这就需要将数据库中的需要对数据库或redis进行删除,从而实现新用户的模拟,其中src/common/db_manager.py和src/common/redis_manager.py分别对两者增删改查方法的封装,这时它们就起到了关键作用(大家可以自行搜狗,根据自己的风格编写)

当然,根据需要,也可增加其他可以使用的公共api接口,如针对php语言特点对返回的数据进行计算封装的src/common/calculate.py

五、每个功能模块的公共部分及所有接口用例执行入口,如crazy接口的公共功能部分src/activity/crazy及测试用例run_activity_crazy.py,及all_interfaces.py

以上接口用例的编写,对接口业务逻辑根据自己的需要进行编写,结果展示可以借助HTMLTestRunner,网上也有很多示例,可自行搜狗

4

结束语

好了以上就是今天要分享的内容,之后敬请关注接口自动化--编写过程中遇到的问题总结,下次见!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档