当前位置: 首页 > news >正文

用python怎样实现接口测试

一、什么是接口测试?

接口可以分下面几种

1、系统与系统之间的调用,比如银行会提供接口供电子商务网站调用,或者说,支付宝会提供接口给淘宝调用

2、上层服务对下层服务的调用,比如service层会调用DAO层的接口,而应用层又会调用服务层提供的接口,一般会通过服务之间的调用,比如注册用户时,会先调用用户查询的服务,查看该用户是否已经注册。

而我们所要做的接口测试,先要了解是基于哪一种类型的接口测试,不同类型的接口测试方法可能是不一致的,总体来说,不管是那种类型,我们只要把被测接口当做是服务方,而把我们的测试手段当做是客户方,我们的目的就是,通过我们的测试手段,去验证服务端满足了他声明提供的功能。

二、做接口测试的流程一般是怎么样的?

接口测试的流程其实和功能测试的流程类似,因为接口测试依赖的主要对象也是需求说明书,所以,最初的流程就是参与需求讨论,评审需求。需求确定以后,开发会根据需求进行接口设计,会产出接口定义,在开发设计过程中,有能力的话,可以给出一些针对设计的建议,提高可测性,针对需求及设计,进行测试计划,测试设计,然后还需要和配管确定测试环境相关的事情。

在开发完成接口定义之后,就根据需求文档及接口定义进行测试用例设计,测试用例设计主要从业务场景,功能,以及异常测试几个方面考虑。测试用例设计完成后,针对测试用例进行评审,然后,如果开发代码部分可测时,即可进入测试了,因为是部分可测,可能会使用到mock方法(mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。)。已有测试代码时,就要进行测试代码的持续集成了,我们是使用jenkins来进行持续集成的。

三、接口测试的数据准备,应该怎么做呢?

接口测试的数据准备,可以从下面几个方面去考虑:

1、如果是只测试一次的接口,可以使用硬编码的方式准备测试数据,在写测试代码的时候,使用到什么数据就写什么数据,为了避免数据重复,可能比较多的会用到随机字符或随机数

2、可以直接通过调用其他API的方式准备测试数据,这种情况在测试最上层服务的时候比较有用,比如测试团购购买服务,就需要准备要购买的团购数据,购买团购的用户数据,这个时候,可以直接调用生产团购的api和生成用户的api直接生成测试数据

四、接口测试怎么设计测试用例呢?

我觉得接口测试用例的设计方法其实和功能测试用例的设计方法是类似的,因为接口是需要满足需求的,而接口测试所依赖的也是需求说明书,但是,因为接口测试毕竟是通过代码去测试代码,所以,为了保证覆盖率,可能会使用到单元测试的方法,具体的测试用例设计,参考如下:

1.输入参数测试: 针对输入的参数进行测试,也可以说是假定接口参数的不正确性进行的测试,确保接口对任意类型的输入都做了相应的处理:

输入参数合法,

输入参数不合法,

输入参数为空,

输入参数为null,

输入参数超长;

2.功能测试:接口是否满足了所提供的功能,相当于是正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例具有更好的可读性和维护性。

3.逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试界限并不是那么清楚,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分支情况和异常;

4.异常情况测试:

接口实现是否对异常情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何的异常都进行处理。可以看看这篇文章:接口测试总结

五、接口测试工具有哪些?

1.Wireshark:用来获取网络数据封包,包括http,TCP,UDP,等网络协议包

img_9ba521817e6812e0d493afde2f902bd6.png
Wireshark接口测试工具1

2.Postman:不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一

img_16675fb99f909db6d196b42058566ac0.png
Postman接口测试工具2

3.HttpRequester:firefox上的一个插件工具,可以模拟多种请求,界面简单清晰,上手容易,也是小编比较喜欢的一款工具之一

img_f5cf843aaef716da3a092377cfe9e6fe.png
HttpRequester接口测试工具3

4.fiddler:史上最强大的app、web接口调试工具,没有之一,不解释

img_1c6497966688029e408e439474750a4b.png
fiddler接口测试工具4

原文参考:TesterHorde测试部落

相关文章:

  • JSP语法1
  • iOS 画板 涂鸦 答题
  • poj 1475 Pushing Boxes
  • 初识 ActivityLifecycleCallbacks
  • Zim - 普通人的Org-mode
  • 带参数存储过程的小例子
  • NSLog输出对象
  • 需要Review的题目:
  • lame的ios 静态库创建shell
  • 浅谈设计模式在iOS开发实战项目中的应用
  • string的Equels问题小记
  • JS创建函数:函数声明和函数表达式
  • 快给你的app上锁吧(android数字解锁)
  • 2012财富世界500强发布,大陆首超日本,新增12家
  • F#中的事件(下)
  • 「面试题」如何实现一个圣杯布局?
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【技术性】Search知识
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • interface和setter,getter
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JS变量作用域
  • js正则,这点儿就够用了
  • k个最大的数及变种小结
  • npx命令介绍
  • Spring Cloud中负载均衡器概览
  • Spring框架之我见(三)——IOC、AOP
  • Yii源码解读-服务定位器(Service Locator)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 老板让我十分钟上手nx-admin
  • 前端自动化解决方案
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 我感觉这是史上最牛的防sql注入方法类
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​比特币大跌的 2 个原因
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (BFS)hdoj2377-Bus Pass
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (python)数据结构---字典
  • (待修改)PyG安装步骤
  • (二)hibernate配置管理
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (利用IDEA+Maven)定制属于自己的jar包
  • (原創) 未来三学期想要修的课 (日記)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET简谈设计模式之(单件模式)