自动化测试接口测试前的【准备及思路】

news2024/11/14 1:10:32

1、什么是接口测试


客户端(前端)与服务端(后端)的关系,一般小编会理解为“服务端负责赚钱养家,客户端负责貌美如花”。客户端更注重的是功能呈现及用户体验,怎么将强大的功能精彩的界面呈现给不同的用户,怎么吸引用户使用它,而服务端则是更多的输出所提供功能服务,如功能逻辑,业务逻辑,算法等等,是完美呈现功能的数据提供者。比如你想买件上衣,那么推荐算法给你推荐的就是上衣,而不是裤子。而接口正是服务端提供给客户端这些功强大功能的一个桥梁。

接口测试就是借助工具模拟客户端向服务端发送请求报文,提供不同的输入参数,服务器接收到请求报文后,对相应的报文即不同的输入参数进行处理,然后返回给客户端响应。工具可以模拟客户端同时接收响应,测试就是要检查请求及返回是否符合需求预期。

2、接口分类

接口分为:内部接口和外部接口。内部接口是内部代码交互调用时用到的接口,如白盒测试就是测试的内部接口;外部接口是客户端与服务器交互时用到的接口,如http接口、Web service接口等

3、接口测试都需要测什么

下面是用一张导图总结了一下接口测试主要测试的内容:

 

以上我们可以看出接口测试对服务端的业务功能逻辑能够达到很好的验证,并且接口测试可以不涉及客户端(前端)的交互,不存在兼容问题,只需要根据接口文档发送对应的请求并对请求结果进行校验即可,本文及之后文章也主要跟大家交流的是接口的功能测试及自动化相关内容。

4、接口测试自动化的必要性


1.API编程已经是近年来非常流行的技术

2.可以发现在客户端(前端)发现不了的bug,如服务端对异常情况的校验

3.适用于目前流行的敏捷开发,在产品需求迭代中能够实现快速的自动化接口验证

4.自动化接口测试实现能够对线上环境的接口监控

5.接口变更频率远远低于UI,所以所需的维护成本更低

6.实现接口自动化更容易(无论是使用工具还是自动化框架),且更容易持续集成

5、接口自动化怎么实现


1.借助工具,如现在已经非常成熟的postman、jmeter、RESTClint、SoapUI等

现成的工具易于上手,但是针对不同的业务场景可能存在一定的局限性,可扩展性不够灵活。

2.接口自动化测试框架

需要一定的编码能力,但可结合业务需求自行封装,可扩展性较强,且易于持续集成。
原文链接:https://blog.csdn.net/m0_70618214/article/details/129499141

6、自动化框架知识准备及设计思路

目前小编所涉及业务的接口基本都是基于http协议的,返回的数据类型也大都是json格式,少量是xml格式。

  • 知识准备相关:

1.理解http协议

2.理解http请求的整个流程

3.了解常用的认证机制

4.数据库

5.redis

6.基本的代码能力(结合自己情况选择自动化框架的语言)

  • 设计思路相关

1.公共api封装

a.接口请求封装

b.公共请求数据或参数分离(请求域名、公共请求参数)

c.不同接口请求参数的获取(可以用xml、json、excel、csv等格式)

d.数据库api的封装(增删改查)

e.redis api的封装(增删改查)

2.每条case验证测试数据的准备

3.验证点(通过断言验证)

对于接口返回的比较有规范的代码:

a.http状态码

b.业务状态码,一般比较规范的代码返回正常逻辑的数据会规定code=0或1(可能key是其他名称,由开发同学自己定义)

c.消息,一般比较规范的代码返回正常逻辑的数据会规定msg=ok或error(可能key是其他名称,由开发同学自己定义)

d.数据(业务逻辑返回客户端或前端需要的数据格式)

 好了,以上内容做到心里有数之后,就可以开开心心的进行自动化框架设计了,测试框架设计及编写测试用例过程中遇到的问题,后续文章会跟大家一一交流。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1421313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第35天 | 860.柠檬水找零 406.根据身高重建队列 452.用最少数量的箭引爆气球

柠檬水找零 局部最优&#xff1a;收到20元时优先找零10元5元&#xff0c;不够再找零3个5元&#xff0c;因为5元可以找零20和10&#xff0c;更有用。全局最优&#xff1a;完成所有的找零。 class Solution { public:bool lemonadeChange(vector<int>& bills) {int fi…

84 C++对象模型探索。数据语义学 - 继承多个类的时的数据布局问题。

此章节分析多继承问题&#xff0c;难点&#xff0c;但是非重点&#xff0c;实际开发中&#xff0c;多继承用的很少&#xff0c;容易被code review&#xff0c;可以不看。 我们要访问一个类对象中的成员 成员的定位是通过如下两个因素决定的&#xff1a;this指针(编译器会自动调…

数字身份保护:Web3如何改变个人隐私观念​

随着Web3时代的来临&#xff0c;数字身份保护成为人们关注的焦点之一。Web3技术的引入不仅为个人隐私带来了新的挑战&#xff0c;同时也为我们重新思考和改变个人隐私观念提供了契机。本文将深入探讨Web3如何改变个人隐私观念&#xff0c;以及在数字身份保护方面的创新举措。 1…

springboot中获取配置文件中属性值的几种方式

目录 第一章、使用Value注解第二章、使用PropertySource注解第三章、使用Configurationproperties注解第四章、使用Java Properties类第五章、使用Environment接口 友情提醒: 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接跳转到文章指定位置…

财务数据可视化大屏:企业决策的智慧之眼

在大数据时代&#xff0c;财务数据的管理与分析对于企业的决策和发展至关重要。然而&#xff0c;面对海量的数据&#xff0c;如何快速、准确地获取有价值的信息&#xff0c;一直是企业面临的挑战。这时&#xff0c;财务数据可视化大屏的出现&#xff0c;为企业提供了一个全新的…

VS2019卸载VA插件之后,出现闪退时

https://learn.microsoft.com/zh-cn/visualstudio/ide/reference/safemode-devenv-exe?viewvs-2022 采用安全模式进入VS。 以管理员运行VS2019命令行窗口&#xff1a; 进入VS界面后&#xff0c;再关掉&#xff0c;重新按正常方式打开VS界面即可

webassembly003 TTS BARK.CPP-02-bark_tokenize_input(ctx, text);

bark_tokenize_input函数 bark是没有语言控制选项的&#xff0c;但是官方的版本无法运行中文bark_tokenize_input会调用bert_tokenize函数&#xff0c;bark_tokenize_input函数对中文分词失效&#xff0c;也就是导致不支持中文的原因。 void bark_tokenize_input(struct bark_…

File、IO流(一)

File、IO流 File File是Java.io包下的类&#xff0c;File类的对象&#xff0c;用于代表当前操作系统的文件&#xff08;可以是文件、或者文件夹&#xff09;。 注意&#xff1a;File类只能对文件本身进行操作&#xff0c;不能读写文件里面存储的数据。 IO流 用于读写数据的&…

Unity3d实现简单的战斗

使用u3d实现一个简单的战斗demo&#xff0c;记下学到的知识点&#xff0c;以备后查。 1.判断是否点中指定物体 if (Input.GetMouseButton(0)) {Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit)){//坐标转换Vector…

数据结构—栈实现后缀表达式的计算

后缀表达式计算 过程分析 中缀表达式 &#xff08;15&#xff09;*3 > 后缀表达式 153* (可参考这篇文章&#xff1a;中缀转后缀) 第一步&#xff1a;我们从左至右扫描 后缀表达式(已经存放在一个字符数组中)&#xff0c;遇到第一个数字字符 ‘1’ 放入栈中第二步&#xf…

springboot本地测试

文章目录 本地测试引入依赖进入StudentMapper右键点击生成 项目结构 本地测试 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </d…

[Tcpdump] 网络抓包工具使用教程

往期回顾 海思 tcpdump 移植开发详解海思 tcpdump 移植开发详解 前言 上一节&#xff0c;我们已经讲解了在海思平台如何基于静态库生成 tcpdump 工具&#xff0c;本节将作为上一节的拓展内容。 一、tcpdump 简介 「 tcpdump 」是一款强大的网络抓包工具&#xff0c;它基于…

Redis学习——高级篇⑥

Redis学习——高级篇⑥ Redis7高级之简单实现布隆过滤器BloomFilter &#xff08;七&#xff09; 7 布隆过滤器1. 是什么2.能干嘛3.实现原理和数据结构4.使用三步骤5.尝试手写简单的布隆过滤器&#xff0c;结合bitmap1.整体架构2.步骤设计3 springboot redis mybatis布…

微信扫码登录流程

微信官方文档使用 搜索“微信开放平台”点击导航栏的“资源中心”点击“网站应用”下的“微信登录功能”地址微信扫码登录是基于OAuth2的&#xff0c;所以需要第三方应用&#xff08;就是实现微信扫码登录的应用&#xff09;成为微信的客户端&#xff0c;获取AppId和AppSecret…

PMP备考笔记:模拟考试知识点总结

1. 答题思路&#xff1a;优先看问题&#xff0c;可节省时间。 2. 考试就按照考试的套路来做&#xff0c;不要过多考虑。 开发团队只专注当前冲刺目标&#xff0c;产品负责人对PB排优先级。 收集需求工具-原型法&#xff1a;能够让用户提前体验&#xff0c;减少返工的风险。 …

基于ldap实现登录认证

最近开发的应用需要外协人员实现登录认证&#xff0c;外协人员的密码等信息已经录入到ldap, 需要连接ldap进行登录认证。下面先介绍一下登录的网络旅程图。 一.nginx实现AES加密 nginx请求处理入口&#xff08;前端请求为json格式&#xff09; location /aes {default_type te…

解锁Web3:数字未来的大门

随着科技的不断推进&#xff0c;我们正站在数字时代的新门槛上。Web3&#xff0c;作为互联网的下一个演进阶段&#xff0c;正在逐渐揭开数字未来的面纱。本文将深入探讨Web3的本质、对社会的影响以及在数字时代中所扮演的关键角色。 什么是Web3&#xff1f; Web3是互联网发展的…

数据分析讲课笔记02:科学计算库Numpy

文章目录 零、学习目标一、认识NumPy数组对象&#xff08;一&#xff09;N维数组对象ndarray&#xff08;二&#xff09;ndarray对象重要的属性&#xff08;三&#xff09;ndarray数组案例演示 二、创建NumPy数组&#xff08;一&#xff09;采用array()函数创建数组&#xff08…

父元素flex:1 高度却被子元素撑开的问题

问题 当父元素设置了flex: 1; 的情况下&#xff0c;想在其中子元素超出父元素高度的情况下&#xff0c;产生滚动条&#xff0c;在父元素区域滚动。由于子元素高度不固定&#xff0c;故父元素设置为display: flex; flex-direction: column; 子元素设置flex: 1; overflow: auto;…

select的change方法如何传递多个参数

element-ui中select的change方法传递多个参数 element-ui中的select&#xff0c;checkbox等组件的change方法的回调函数只有当前选择的val&#xff0c;如果想再传入自定义参数怎么办&#xff1f; 不能够传入自定义的参数&#xff0c;在进行某些操作时&#xff0c;会比较困难&…