还敢说你会接口测试吗?全覆盖接口测试扫描总结(详细)

news2024/11/26 18:27:31

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

接口的本质及其工作原理是什么?

接口你可以简单的理解他就是URL,工作原理就会说URL通过get或者post请求像服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。

问什么要做接口测试?

1、越底层发现bug,它的修复成本是越低的。
2、前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
3、检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
4、如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。

5、接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

6、现在很多系统前后端架构是分离的,从安全层面来说:
只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

怎样做接口测试?

由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

常用框架:Python+requests+pytest+yaml+alluer+Jenkins

接口测试,测试点是什么?

目的:测试接口的正确性和稳定性;
原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;
核心:持续集成是接口测试的核心;
优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);

用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);

PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能;

后端接口测试:

看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:

请添加图片描述

后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?

回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:

请添加图片描述

从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。

1、基本功能测试:
由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发同学通常所指的也主要是这部分的内容。

2、边界分析测试:
在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。

但是,前端的输入输出很多时候都是提供固守的值让用户选择(如下拉框),在这种情况下测试的边界范围就非常有限,但接口测试就不存在这方面的限制,相对来说接口可以覆盖的范围更广,同样的,接口出现问题的概率也更高。

3、性能测试:
这个比较容易区分,虽然都需要做性能测试,但关注点确大不相同。App端性能主要关注与手机相关的特性,如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。

两种测试时的策略和方法都有很大区别,所以这部分内容是需要分开单独进行测试的,理论上来说这也是不同的部分。

接口测试都要掌握哪些知识?

1、了解系统及内部各个组件之间的业务逻辑交互;
2、了解接口的I/O(input/output:输入输出);
3、了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;
4、常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;
5、数据库基础操作命令(检查数据入库、提取测试数据等);
6、常见的字符类型,比如:char、varchar、text、int、float、datatime、string等;

接口测试面试常问

面试题:get请求,post请求的区别?

1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。

其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些。

但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。(唯一区别就是这一点,上面3点区别都是不准确的)

http状态码:
1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。
4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。

面试题:webservice接口怎么测试?

它不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用,看返回结果就可以了。

面试题:cookie与session的区别?

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗

考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、建议:将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要你拥有坚定的信念和不放弃的毅力,你就能够克服任何困难,实现自己的梦想。不要让失败阻挡你前进的步伐,每一次尝试都是一次学习和成长的机会,相信自己,迎接挑战!

你的人生只有一次,不要轻易放弃自己的梦想。努力奋斗,即使路途漫长,也要坚持走下去。相信自己,相信未来,成功与失败只在一念之间,加油!

只有不屈不挠的奋斗,才能铸就辉煌的人生。成功从来不会向懒惰和消极妥协,只有勤奋和坚毅才是通向胜利的必由之路。无论前路多么艰难险阻,都要保持信心和毅力,迎难而上,不断超越自我。

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

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

相关文章

搭建SpringBoot项目 详细教程

一、搭建SpringBoot项目 这个项目,可以作为种子项目,我打算把它放置Gitee上。包含大部分web开发的相关功能,后期所有的Spring Boot项目都可以用这个项目,简单修改一下配置,就可以快速开发了。 选择Spring initializr…

C51/C52--led流水灯、静态数码管

目录 一、led流水灯(flowing water lamp) 二、静态数码管 一、led流水灯(flowing water lamp) 我们在点亮一个led灯的基础上,对8个led灯按照某种特定的点亮规律进行操作,从而形成像水按顺序流动的效果。 …

缓存在高并发场景下的常见问题

缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓…

JMeter性能测试---完整入门到白了少年头

目录 一、性能测试 二、负载/压力/可靠性 三、JMeter工具 四、负载脚本 五、Jmeter参数化 六、远程操作运行脚本 一、性能测试 测试目的: 1.客户有明确要求,如:系统要求同时满足5000个用户登录,平均每个用户登录时间不能超…

体积小纯净无打扰,新版微软电脑管家在教国内做杀软

早在去年初,微软电脑管家就开启了 V1.0 版本内测,咱们也在第一时间替大伙儿体验了一番。 微软电脑管家最初就是专为国内用户推出的,算是真正做到了精简省心,无任何流氓广告弹窗行为。 这与咱们国内各种流氓杀软环境形成了极为鲜明…

IIS 7中添加匿名访问FTP站点

1. 开启FTP和IIS服务: 2.打开IIS 管理器: 我电脑上是IIS 7.5 ,所以选择第一个并点击打开哦。 如果你想知道自己IIS的版本,打开帮助菜单: 3. 新建FTP站点: 4. 填写站点基本信息: 5. 设置绑定和S…

Stable diffusion WebUI img2img使用教学

图生图 (img2img) 相较于文生图 (txt2img),因存在参考图片的基础上创作,其可控性自然更强。下面从图生图的几个应用方向出发,详述其功能特性。 文章目录 推提示词img 重新绘制参考图Resize mode 缩放模式Denoising 重绘幅度 Sketch 绘图Inpai…

集成光子芯片量子器件研究重要进展

前言: 中国科学技术大学郭光灿院士团队在集成光子芯片量子器件的研究中取得重要进展。该团队邹长铃、李明研究组提出人工合成光学非线性过程的通用方法,在集成芯片微腔中实验观测到高效率的合成高阶非线性过程,并展示了其在跨波段量子纠缠光源…

亚马逊云科技中国峰会“创业者之日”,赋能不同领域创业者前行

IDC预测,到2025年全球数据规模将达到175 ZB,这为人工智能模型训练提供了海量数据资源,全球AI产业迅速发展为创业者们带来了巨大的机遇,但也提出了全新的挑战。新的市场、高效的工具和智能的资源,开辟了创新的领域和商业…

23年互联网Java后端面试最全攻略,只花一周时间逼自己快速通关面试

大家从 Boss 直聘上或者其他招聘网站上都可以看到 Java 岗位众多,Java 岗位的招聘薪酬天差地别,人才要求也是五花八门。而很多 Java 工程师求职过程中,也是冷暖自知。很多时候技术有,但是面试的时候就是过不了! 为了帮…

JVM存储模型、值传递和引用传递

JVM存储模型、值传递和引用传递 一、首先根据下图理解一下JVM是什么? — Java程序和操作系统之间的桥梁 二、Java数据存储模型 因为栈区、本地方法栈、程序计数器是线程私有的,每一个线程在运行时会单独去创建这样一个内存,所以说有多少个线…

前端18K面试题总览,往这方面准备就对了

Vue面试题 生命周期函数面试题 1.什么是 vue 生命周期2.vue生命周期的作用是什么3.第一次页面加载会触发哪几个钩子4.简述每个周期具体适合哪些场景5.created和mounted的区别6.vue获取数据在哪个周期函数7.请详细说下你对vue生命周期的理解? vue路由面试题 1.mv…

Unity核心2——Sprite

顾名思义,Sprite Editor 就是精灵图片编辑器,它主要用于编辑 2D 游戏开发中使用的 Sprite 精灵图片 ​ 它可以用于编辑,图集中提取元素,设置精灵边框,设置九宫格,设置轴心(中心)点等…

以色列QM和荷兰QuantWare合作提供预集成控制系统和QPU解决方案

​ (图片来源:网络) 6月13日,以色列量子计算机操作系统初创公司Quantum Machines(QM)和荷兰超导量子处理器(QPU)的领先供应商QuantWare宣布合作,旨在大幅加速研究进展&a…

火爆全网,python自动化测试logging日志模块使用方法(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、日志级别 imp…

3D WEB轻量化引擎工具HOOPS Communicator与Three.js和自主DIY的对比分析

​基于Web的2D和3D可视化已经变得越来越流行,而且市场根据这些变化,为其提供了更丰富的实用性。如果处理得好,开发人员可以使用户以简单、用户友好的方式与其他客户、开发人员或其他任何人共享来自市场的设计。 当开发人员考虑第三方提供这项…

保险业服务模式“智能化”升级

近年来,随着数字时代的多元化发展,人工智能技术凭借其高度便利性,已被广泛拓展应用到各行各业。在AI的加持下,保险行业的发展正处于从“数字化”阶段迈向“智能化”阶段的过渡时期,销售渠道多样、业务量激增以及客户对…

Django之路由层

一、路由的作用 路由即请求地址与视图函数的映射关系,如果把网站比喻为一本书,那路由就好比是这本书的目录,在Django中路由默认配置在urls.py中,如下图: 二、简单的路由配置 # urls.py from django.urls import re_…

java 献血管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 献血管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

CSS查缺补漏之《如何优雅解决margin垂直方向塌陷与合并问题?》

一:父子元素之间margin垂直方向塌陷问题 在处理margin垂直方向问题时,经常会遇到在给子元素设置margin时,导致效果出现在了父元素上;如下代码所示: 代码原义是想实现三方面: ① 将box1的margin-top调为5…