测试流程及注意事项,包括jemter和postman

news2024/9/27 17:34:13

一、接口测试需要考虑的地方有哪些?

1、考虑输入参数和输出参数的合法性,参数必填,默认值,参数长度和格式校验,边界等,图片长传考虑图片大小和格式。查询考虑数据排序,分页考虑分页显示等。

2、业务逻辑和功能实现

3、数据库校验

4、性能测试(接口tps、响应时间等)

5、兼容性,新老版本数据的兼容

6、安全性,敏感信息加密,恶意攻击的防范,权限控制等

7、幂等性(接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为 多次点击而产生了副作用。举个最简单的例子,点击一次或者多次点击同一个数据生成多条相同数据,即在发布帖子或者支付时不能产生这种错误,这就没有保证接口的幂等性;

二、接口测试流程是

1、获取接口文档

2、编写接口测试用例;

3、使用接口工具,或者自己搭建的测试平台进行测试;

4、输出测试报告(持续集成发邮件等形式都可以),

详情注意事项:

1、获取接口文档,熟悉单接口以及链路接口业务,包括接口地址,请求方式,鉴权方式,入参,出 参,错误码等。没有接口文档的,已抓包获取接口相关参数,然后进行测试,相关错误报告给对应开发,根据项目实际情况确定修改方案;

2、编写接口测试用例并评审。接口功能用例设计:

A、正常用例例:单接口返回成功场景!链路接口(业务流接口)逻辑实现! 
B、反例: 鉴权反例:鉴权码为空,错误的鉴权码,鉴权码已过期。数反例:参数为空,参数类型异常,参数长度异常, 错误码反例:(根据业务而定) 。其他反例场景: 如接口黑名单,接口调用次数限制等,分页场景:(0,第一页1,中间页5,最后一页10,100,其他 业务异常)
C、兼容性用例:比如一个接口需要兼容多个版本的前端调用。

3、使用接口测试工具Postman/Jmeter执行接口测试,通常执行过程中需要考虑以下几个方面:

A、是否满足前提条件:有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token
B、参数之间是否存在关联:有些参数彼此之间存在相互制约的关系 
C、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
D、参数是否是动态参数。
E、接口是否需要签名验证等。

4、实现持续集成并输出接口测试报告发送电子邮件,企微(钉钉群)等,有bug报bug。每天固定时间运行,从而监控是否有因开发代码变更或者新功能添加而导致的遗漏接口 bug。

三、get和post的区别

1、GET一般用于查询数据;而POST一般用于添加、删除或修改数据。 
2、传参方式不同:get通过地址栏传输,post通过表单报文传输,所以post请求比get请求的安全性相对较好。get请求可以直接通过浏览器访问,支持刷新和后退。post请求不能直接使用浏览器访问,刷新后数据要重新发送。 
3、传参长度不同:get参数有长度限制(受限于url长度),而post无限制
4、GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)

四、http和https的区别

1、http是超文本传输协议,信息是明文传输,Https协议是由HTTP协议+SSL协议构建的加密传输协议,比http协议安全; 
2、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
3、HTTP无需证书,而 HTTPS需要认证证书

五、cookie,session,token有什么相同点和不同点。

1、相同点:三者都是用于鉴权并且都是由服务器产生的。
不同点:
2、cookie保存在客户端的浏览器上,cookie不安全,其他人可以通过分析存放在本地的cookie并进行cookie欺骗。
3、session比cookie安全,它会在一定时间内保存在服务器的内存,但当访问增多时,比较占用服务器的性能。单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储于服务端,浏览器对其没有限制。
4、token就是令牌,是一个字符串,主要是用于做客户端身份认证,通常登录成功后,服务端会返回token,客户端需要把token值保存下来,后续请求其他接口时,需要在请求中携带这个token值,只有服务端对token校验通过后,才允许访问。

六、接口测试中是怎么校验接口返回结果是否正确

1、验证接口响应状态码是否是200。
2、当接口响应正文比较短,比较固定时验证响应的完整内容是否等于预期。 
3、当响应内容较长较多时,验证响应报文是否包含关键信息。 
4、当响应正文为XML格式或JSON格式时,可以通过XPATH或JSONPATH,正则表达式,获取其中的某个节点,验证响应报文关键字段是否存在。
5、查询数据库或调用其余接口查询。当要验证的信息在当前测试接口的响应内容中不存在时,可以调用 其他接口来验证。例如,一个增加用户信息的接口,要验证信息确实增加成功了,可以再调用查询用户信息接口来确认用户信息添加成功。当然,在获取数据库查询权限的情况下,也可以直接查询数据库来验证。

七、为什么要做接口测试

A、 在目前前后端分离开发的模式下,项目在开发过程中,客户端和服务端开发的进度不一致,比如服务端先开发完了,这个时候可以先对服务端进行接口测试,确保服务端逻辑和返回数据是正确的,然后再测试客户端。 
B、在测试某些业务时,不能仅仅通过前端来测试,比如用户注册,前端限制了用户名不能为空,但是可以通过工具绕过前端直接调用服务端接口,如果服务端没有做相关的逻辑判断,就会造成数据错误。包括接口数据传输过程中是否对关键信息加密等。所以必须针对服务端接口做测试。 
C、接口测试属于集成测试、测试介入越早、就越能在项目早期发现问题,其修复问题的成本越低,在开发提测后,可以先通过工具把服务端的接口测试跑一遍,确保接口测试用例都是通过的,快速判断服务端接口是否符合预期。然后再通过UI界面进行测试。否则接口有bug,前端页面必定有bug。并且接口测试非常快速、接口测试用例执行的时间是毫秒级的。

八、HTTP状态码,以及它们代表什么意思

1xx 信息提示(表示临时的响应) 、200 正常(表明服务器成功地接受了客户端请求)、307 重定向(服务器要求客户端重新请求一个新的URL)、401 未授权,需要身份认证、403 服务端禁止访问 、404 请求的资源未找到(比如url写错了,页面被删除等)、405 请求方法不允许(比如服务端的POST类型,客户端使用GET方式请求)、 5xx 服务端内部错误(服务器由于遇到错误而不能完成该请求)

九、一个接口请求不通该如何排查,可能的原因是:

1.检查请求四要素:请求方式,请求路径,请求头,请求参数是否写错。
2.客户端和服务端网络不通
3.服务端项目没有部署起来,接口无法访问。
4.请求被服务器的***拦截了
5.服务端程序内部发生了错误
6.没有访问权限(比如缺乏token、cookie之类)
7.客户端设置了网络代理(比如打开了Fiddler/Charles等抓包工具) 
8.如果是浏览器访问,是不是绑定了错误的hosts ;

十、接口测试中的加密或签名的接口如何处理?

加密接口: 
1、首先要先了解接口使用的加密方式(如:base64、md5、sha系列加密、rsa加密等) 
2、检查接口测试工具是否支持这种加密方式,如果支持的话,直接使用对应功能就行了(比如Jmeter 支持md5);如果加密方式是公司内部特有的算法,可以在接口测试工具中调用公司的加密算法代码 (如jar包)来实现加密。 
签名接口: 了解签名规则之后,在接口请求之前先对参数按照签名规则加密之后再发送请求。签名sign一般通过请 求头传值。
  1. ​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙

  5. 可以免费学习!划重点!开源的!!!

  6. qq群号:455787643【暗号:csdn11】

十一、没有接口文档,如果做接口测试

1、方式一:可以使用Fiddler、Charles等抓包工具抓取接口数据之后整理成接口文档,接口中不清楚的字 段,找时间集中找开发解答。然后再进行接口测试; 
2、方式二:可以通过Jmeter的代理录制功能,先把接口请求录制下来,然后再逐一进行接口测试。

十二、依赖于第三方数据的接口如何进行测试

可以通过Postman搭建mock服务,但是Postman的mock服务有访问次数限制,每天只能访问1000 次,也可以通过Flask,Servlet等技术搭建接口Mock服务器。

十三、依赖于登录状态的接口如何测试

依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功, postman会自动关联cookie,jmeter通过添加http cookie管理器来处理cookie关联。

十四、常见的请求头以及它们的作用是什么?

1.Accept: (客户端可以接收的数据格式)
2. X-Requested-With:(ajax请求,异步请求)
3. User-Agent: (客户端的用户)
4. Content-Type: application/x-www-form-urlencoded; 
5.charset=UTF-8(内容的格式) 
6.Cookie: csrf_token=2c76c391ab3922fe; (cookie信息)

十五、常用的jmeter自带函数有哪些

1、 random():随机数函数 
2、randomString():随机字符串函数
3、time():获取当前时间戳函数
4、 md5():加密函数 
5、setpropty():跨线程组设置属性值函数

十六、使用jmeter如何做接口之间的数据关联

接口数据关联指的是上一个接口的某个返回值,作为下一个接口的请求参数。 如果上一个接口返回的是json格式的,可以用json提取器把数据保存到一个变量里,如果是其他格式 的,可以使用正则提取器保存数据。 那么在下一个接口中,直接使用${变量名}就能使用这个数据。

十七、Jmeter中常用的断言方式

1、Json断言,可以通过Json路径表达式判断接口返回的Json字符串中某些字段是否符合预期 
2、响应断言,可以判断响应头/响应体中是否包含预期的字符串。区别在于:Json断言只能判断Json格式;响应断言只要是文本格式都可以判断,应用范围更广 
3、beanshell断言,可以判断当一个接口经过CSV数据驱动之后,对返回的正常结果和异常结果同时进行判断。

十八、postman在工作中使用流程

1、获取接口文档,熟悉单接口以及链路接口业务,包括接口地址,请求方式,鉴权方式,入参,出参,错误码等。
2、 编写好用例
3、在 postman 先建好 url 环境变量
4、根据接口用例所属的模块新建集合管理 
5、 在集合中不同模块下录入测试用例 
6、录入测试用例的时候根据预期结果在 tests 页签中增加断言 
7、 导出通过 Newman+Jenkins 去运行

十九、Postman中常见的POST提交数据方式有哪些?

主要有以下四种方式: 
1、application/x-www-form-urlencoded:表单方式提交数据。
2、multipart/form-data :报文包含有文件上传
3、application/json(text/plain,text/xml):报文类型为json字符串类型。
4\binary 报文类型为二进制文件上传。

二十、如何用 postman 设置关联

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行在 postman 中设置关联的步骤如下:
1、 先通过正则表达式提取的方式或 json 取值的方式把下一个接口需要的信息从上一个接口截取出来 
2、 使用设置全局变量的代码把取出来的值保存到全局变量 
3、在下一个接口中,使用{{全局变量}}代替要替换的静态值

二十一、工作中用fiddler抓包工具来做什么

1、当测试出bug时,可以通过fiddler抓包,分析bug是客户端还是服务端的问题
2、当做接口测试时,通过抓包获取接口的入参和返回值,包括接口之间的数据关联
3、当对客户端做弱网测试,可以修改fiddler的网络模拟参数,模拟出不同的网络速度
4、当需要对客户端测试一下特殊场景(线上调试),可以使用fiddler设置响应断点,修改服务端响应的数据,测试客户端对应的逻辑处理。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

linux 下一跳缓存,early demux(‌早期解复用)‌介绍

3.6版本以后的下一跳缓存 3.6版本移除了FIB查找前的路由缓存。这意味着每一个接收发送的skb现在都必须要进行FIB查找了。这样的好处是现在查找路由的代价变得稳定(consistent)了。3.6版本实际上是将FIB查找缓存到了下一跳(fib_nh)结构上,也就是下一跳缓存下一跳缓存…

【算法】蒙特卡洛模拟

一、引言 蒙特卡洛模拟算法是一种基于概率和统计理论的数值计算方法,通过随机抽样来近似复杂系统的概率问题。它以摩纳哥著名的赌场蒙特卡洛命名,象征着其基于随机性的特点。 二、算法原理 蒙特卡洛模拟算法的核心思想是利用随机抽样来估计一个函数的期望…

【SQL】删除表中重复数据的方法

很久之前我写入一张sql的数据表,它里面有很多重复的内容。然后我想只保留一条原始数据: 例如上面的时间,出现了很多重复值。 我最初用的是这种方法: SELECT * FROM table_name WHERE primary_key IN (SELECT max(primary_key)F…

2.4 SQL注入之高权限注入下

SQL注入之高权限注入 1.注入流程与上节实例相同 查询所有数据库名称 http://localhost/sqli-labs-master/Less-2/?id-2%20union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata查询数据库对应的表名 http://localhost/sqli-labs-master/Le…

JMeter之接口测试

在做接口测试之前,我们起码需要了解: 1、接口涉及的业务 2、接口的基本信息:访问地址、传值方式(Post 或 Get)、协议类型、域名或IP、端口、参数 3、接口参数是否加密或者有其他处理加工 很多时候,可能…

U8+ 提示子票区间开始输入不合法处理

手工做是否分包流转为是的商业汇票,提示如下: 处理方法: 第一步: 第二步 数据类型为数字,保存即可,填写值为1

STM32H7 串口 空闲中断 硬件FIFO 任意长接收 Hal库 IDLE

STM32H7 串口 空闲中断 硬件FIFO 任意长接收 Hal库 IDLE 由于工作原因好久不接触ST的芯片了,所以断更ST的东西了,不过偶尔玩玩也挺好的。 接着上篇继续说串口的事儿,这次是FIFO,STM32H7的串口都是带硬件FIFO,大小是发…

java重点学习-redis

一.redis 穿透无中生有key,布隆过滤nul隔离 锁与非期解难题。缓存击穿过期key, 雪崩大量过期key,过期时间要随机。 面试必考三兄弟,可用限流来保底。 1.1 Redis的使用场景 根据自己简历上的业务进行回答 缓存穿透、击穿、雪崩、双…

人工智能再次进化 善用AI提升营运效率

人工智能无疑为我们的生活带来不少便利,也为商界和社会发展作出了重大贡献。事实上,它的起源最早可以追溯到70年前,只可惜过往的 AI 技术尚未如现时般成熟,可以做到的事也远比现在少;直至近期的 AI 技术取得了重大突破…

Redis缓存预热方案详解:提升应用性能与用户体验

文章目录 引言1. 为什么需要缓存预热?2. 缓存预热的基本原理2.1 数据选择2.2 加载策略 3. Redis缓存预热方案设计3.1 方案概述3.2 数据选择3.3 加载策略3.4 实现方式 4. 测试与监控4.1 单元测试4.2 监控 5. 总结 引言 在现代Web应用中,缓存技术已经成为…

【并行计算】CUDA基础

cuda程序的后缀:.cu 编译:nvcc hello_world.cu 执行:./hello_world.cu 使用语言还是C。 1. 核函数 __global__ void add(int *a, int *b, int *c) {*c *a *b; }核函数只能访问GPU的内存。也就是显存。CPU的存储它是碰不到的。 并且核…

【技术解析】工厂内部导航系统:高精度定位与智能路径规划的技术实现

一、工厂内部导航系统概述 工厂内部导航系统集成了最新的GPS室内定位技术、蓝牙定位技术,实现了对工厂内部环境的无缝覆盖与高精度定位。无论是繁忙的生产线、错综复杂的仓库还是广阔的厂区,都能轻松应对。 二、工厂内部导航系统核心功能 实时定位&…

PromptReps: 解锁LLM的检索力量

论文:https://arxiv.org/pdf/2404.18424代码:https://github.com/ielab/PromptReps机构:CSIRO、昆士兰大学、滑铁卢大学领域:retrieval、embedding model发表:arXiv 当前大型语言模型用于zero-shot文档排序的方法主要有…

台球助教系统开发概述:技术架构与功能实现

在现代体育训练领域,技术的融合正不断推动运动教学方式的革新。台球,作为一项集策略、技巧与心理素质于一体的运动,其教学过程的优化显得尤为重要。因此,开发一套高效、智能的台球助教系统,旨在通过技术手段提升学员的…

【微处理器系统原理与应用设计第五讲】再探Cortex-M4处理器结构、总线、异常与中断、SysTick

一、处理器结构 如下图所示,主要包括处理器内核、嵌套向量中断控制器(NVIC)、系统节拍定时器(SysTick)以及可选的浮点单元,还有一些内部总线系统、可选的存储器保护单元(MPU)以及支…

【AI】前向和反向传播的关系

这个例子来自ChatGPT,很有趣的解释了一个模型在trian的过程中前向传播和反向传播的过程。 其中Sigmoid的导数是 自身乘以1-自身的结果。 这也是上述式子中为什么有0.622*(1-0.622)。

Android Telephony总结

1、Telephony 业务介绍 Android telephony涉及较多模块 1.1、STK业务介绍 1.1.1、STK域选 1.1.2、是否支持STK Telephon STK-CSDN博客 1.1.3、STK应用的安装卸载 1.2、SS补充业务 1.3、通话业务 1.3.1、紧急号码 ECC 号码总结_ecc号码-CSDN博客 1.4、SMS 1.4.1 短信发送方式…

相亲交友系统如何运用算法匹配理想伴侣

在数字化时代,相亲交友系统已经成为寻找理想伴侣的重要途径。作为程序员,我们致力于通过先进的算法,为用户提供精准的匹配服务,让相亲交友变得更加高效和有趣。 相亲交友系统的核心在于算法,我们的团队运用了多种算法…

一线大厂软件测试面试题及答案解析,2024最强版...

1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容&#xff0…

达梦创建新连接

小伙伴是不是遇到过什么都没有的达梦数据库页面,很慌 我们直接点击窗口——视图——对象导航 出来了以后,点击小图标进行新建链接 输入自己的密码用户名,就能新建一个链接了,希望可以帮助到各位小伙伴