01、通用的项目架构

02、什么是接口

接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。

客户端大多数的业务操作,都是需要调用服务端接口来获取一些数据,或者触发某些业务,然后客户端拿到接口返回的数据后,会根据数据内容做不同的处理和展示。

03、为什么要做接口测试

A、在公司里,客户端和服务端通常是由不同的团队开发的,在项目开发过程中,客户端和服务端开发的进度不一致,比如服务端先开发完了,这个时候可以先对服务端进行接口测试,确保服务端逻辑和返 回数据是正确的,然后再测试客户端。或者是某些测试部门,专门测试服务端开发团队,因此,他们的测试对象就是接口。

B、在测试某些业务时,不能仅仅通过前端来测试,比如用户注册,前端限制了用户名不能为空,但是有些人可能通过工具绕过前端直接调用服务端接口,如果服务端没有做相关的逻辑判断,就会造成数据 错误。包括接口数据传输过程中是否对关键信息加密等。所以必须针对服务端接口单独做测试

C、在开发提测后,可以先通过工具把服务端的接口测试跑一遍,确保接口测试用例都是通过的,快速判断服务端接口是否符合预期。然后再通过UI界面进行测试。否则接口有bug,前端页面必定有bug。

04、接口测试工具和流程

常见的HTTP接口测试工具有Jmeter、Postman、SoupUI等。企业里用的比较多的是Jmeter。

Jmeter是一款开源、免费的接口测试工具,它可以对接口的功能、性能进行测试。还可以实现接口自动化。

Jmeter具体使用,请参考《Jmeter接口工具实战》文档

接口测试流程:

和普通的web测试一样,也是先进行需求分析、测试用例编写、执行测试、提交bug、回归测试、提交 测试报告等。

05、接口测试的关注点

1、输入

输入主要是指接口的入参,我们平常的测试中,会先考虑正常的入参,以及异常的入参,异常情况包括:参数异常和数据异常,用例设计这块使用较多的是等价类划分和边界值分析

  • 正常的入参

    正常的入参很好理解,就是根据接口设计文档的入参标准,输入正常的参数,响应按接口设计文档的约 定条件正常返回

  • 参数异常

    参数异常包括:参数为空,多参或少参,错误的参数

  • 数据异常

    数据异常:数据类型错误、非空参数为空,长度不符合设计,不在范围内的数据,不合法的成员,特殊 字符或敏感字符,存在关联关系的参数数据异常等

2、业务逻辑

和基于UI的功能测试一样,接口测试也需要了解接口背后的业务逻辑,针对业务流程的处理逻辑,我们 可以从入参的限制条件、事件的操作对象、业务的状态转换等不同维度来考虑

  • 限制条件分析

    ① 数值的限制:字典,等级,行业相关限制,金额限制,分数限制等

    ② 状态的限制:有效|无效,在线|离线,拉黑|洗白等

    ③ 关系的限制:存在或不存在,绑定或解绑等

    ④ 权限的限制:管理员,普通用户等

  • 对象分析

    对象分析主要是对合法和不合法的对象进行操作,比如银行卡用户对卡进行充值,则可能存在:用户A使用非用户A的卡充值;用户A使用自己的卡进行充值,卡已过有效期;用户A使用自己的卡进行充值, 卡为黑名单或挂失等。

  • 状态转换的分析

    比如支付类业务,先支付成功,撤单后会退款,再次支付如果支付未成功,则是支付失败,状态之间的 切换是否正常,未按正常业务顺利进行操作时,状态怎么显示,是否可控,是否出现异常状态,空状态 业务怎么处理等

  • 时序分析

    一些复杂的活动中,一个活动是由一系列的动作按照指定顺序进行,这些动作形成一个动作流,是有按照这个顺序依次执行,才能等到预期的结果,那么在执行过程中发生的其他分支动作程序会作何处理?

3、输出

在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例,比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例

这种根据输出进行设计用例,可以发现前后端是否正常输出结果,提示是否友好,提示是否出现敏感信息等

4、数据库操作

  • 业务数据入库是否正常,是否有重复数据入库,是否出现乱码

  • 数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式

  • 表中各个字段是否符合预期

5、安全性

敏感信息是否加密(如用户名、银行账号,密码,转账金额)

6、性能

  • 接口最大支持多少并发数

  • 接口每秒能处理多少次业务(TPS)

  • 接口的平均响应时间(RT)

  • 接口对服务器资源的消耗(CPU、内存、网络、磁盘)

7、兼容性

接口测试不需要考虑客户端的兼容性,主要是数据的兼容性。比如对于老接口的历史数据是否兼容,用 新接口去处理老的数据,是否能正常处理。

8、其他

  • 幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。

举个最简单的例子:

那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异 常,此时钱已经扣了,用户再次点击按钮,此时系统应该拒绝支付,并且提示“不能重复支付”。相当于 第二次支付不会产生任何作用。在做接口测试时,对于某些有幂等性要求的接口,需要针对幂等进行测 试。

通常可以采用Jmeter连续调用2次接口进行支付、提交等操作,来测试幂等性。

END学习安排上!

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

接口测试到底怎么做,5分钟时间看完这篇文章彻底搞清楚相关推荐

  1. 女生适合做测试吗?看完这篇文章你就懂了

    前言 在我们的传统的想法中,女生的编程思维可能会弱于男生,也导致好多女生会直接躲开编程领域,女程序员的数量也是比较少的,但是也并不是所有的IT行业女生数量都是少于男生的,比如说软件测试,那么女生做软件 ...

  2. 软件测试拿到项目之后该怎么做?请仔细看完这篇文章

    学习软件测试最关键的就是项目实战,如果说我们单纯的学了很多的软件测试理论基础或者很多工具和技术的话,但是没有项目实战去演练,那么面试还是被淘汰. 为了解决大家这样的问题,我搭建在自己的阿里云服务器上, ...

  3. 看完这篇文章之后,终于明白了编译到底怎么回事。

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

  4. 看完这篇文章之后,终于明白了编译到底怎么回事

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

  5. 看完这篇文章前千万别做微信营销

    不是经常在朋友圈被微信卖货的人刷屏?是不是经常在网上看到微信创业的人月入过万?一夜之间,全世界的人都好像在做微信营销,赚的盆满钵满,你是不是蠢蠢欲动?可大南还是建议你在看完这篇文章之前千万别做微信营销 ...

  6. 花1分钟看完这篇文章,保证你立马学会微信公众号发文章!

    原标题:花1分钟看完这篇文章,保证你立马学会微信公众号发文章! 做微信公众号的不会发文章?我想这句话翻译过来应该是,如何发布一篇高质量的文章才对. 比如我在微信公众号发布一篇文章,直接就用微信公众号自 ...

  7. 艾永亮超级产品:不知道怎么做产品?看完这篇文章了解你的产品

    体验产品,是每个企业家的必经之路,拆解产品就像一次新生,总结产品,是对自身产品的感知,当你不知道该如何做产品时,可以看完这篇文章,也许会得到一些新的启发. 产品体验是每个企业家对自身产品认知和创新的一 ...

  8. JVM难学?那是因为你没认真看完这篇文章

    JVM难学?那是因为你没认真看完这篇文章 一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理 ...

  9. 运维学python用不上_作为运维你还在想要不要学Python,看完这篇文章再说!

    原标题:作为运维你还在想要不要学Python,看完这篇文章再说! 本文由马哥教育Python自动化实战班5期学员推荐,转载自简书,作者为Li.Yingjie,内容略经小编改编和加工,观点跟作者无关,最 ...

最新文章

  1. LeetCode 135. 分发糖果(DP)
  2. (CED)列指针与行指针的联系与区别
  3. 一些加快 程序运行速度的方法
  4. PCL之计算点云质心---pcl::compute3DCentroid()
  5. linux shell脚本中 if 条件判断
  6. java三元运算符与类型强制转换
  7. 三阶魔方中心块调整公式及助记方法
  8. STM32——PWM知识详解
  9. python短信验证码登录_Python实现短信验证
  10. 许丹萍 计算机系,【晋江市“十佳少先队辅导员”】第二实验小学老师许丹萍: 关注每一个队员的成长...
  11. Everedit软件下载、安装和运行(免注册)
  12. 京东云linux查看挂载磁盘,使用S3fs在Linux实例上挂载Bucket
  13. 一文读懂什么是卡尔曼滤波
  14. 趣味计算:加油站加油
  15. Elasticsearch 7.X data stream 深入详解
  16. 18-关系型数据和文档型数据库有什么区别?
  17. Qt小项目之txt文本替换
  18. Python回归预测建模实战-随机梯度下降法预测房价(附源码和实现效果)
  19. 台式计算机c盘怎么清理空间,电脑C盘空间空间清理方法
  20. 教务系统自动评教_PHP版正方教务系统一键评教(已修改BUG)

热门文章

  1. import as在python_python import as教程
  2. VR全景播放器 AvPro Video
  3. CSDN查看自己发布的私密文章
  4. 关于混合式开发中使用google联调h5
  5. iOS 12.3开发者版更新,iOS上划关闭动画回来了
  6. 三大数学博弈:巴什博奕 威佐夫博奕 尼姆博奕
  7. 2019-09-19(正在使用的) mac位图字体生成工具 bmfont Glyph Designer 破解导出方式 macos Mojave 10.14.6
  8. 【邀您参加】Android大讲堂-Android游戏开发之捕鱼游戏
  9. Mac使用技巧之在键盘上打开 Mac 应用程序
  10. ElasticSearch 安装教程