1、为什么要做接口测试(必要性)
1.可以发现很多在页面上操作发现不了的bug
2.检查系统的异常处理能力
3.检查系统的安全性、稳定性
4.前端随便变,接口测好了,后端不用变
5.可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
6.可以修改请求参数,突破前端页面输入限制(如金额)

2、当一个接口出现异常时候,你是如何分析异常的?
1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
2.查看后端日志,xhell连上服务器,查看日志

3、如何分析一个bug是前端还是后端的?
先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对
请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题

接口测试:是测试系统组件间接口的一种测试方法
接口测试的重点:是检查数据的交换,传递的正确性,以及接口间逻辑依赖关系。
接口测试的意义:实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期

基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-->结果分析

查询字符串参数一般用于GET请求,会以url string的形式进行传递
请求体参数一般用于POST请求,可以使用Content-Type来指定不同参数类型

4.如何从上一个接口获取相关的响应数据传递到下一个接口?
先从上一个接口中的响应数据获取对应的返回值,然后使用正则表达式or使用JSON解析来提取需要获取的值,
然后存储在一个变量中,最后在下一个接口中直接引用该变量即可

5.接口测试用例的编写要点有哪些?
1必填字段:请求参数必填项、可选项
2合法性:输入输出合法、非法参数
3边界:请求参数边界值等
4容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5响应数据校验:断言、数据提取传递到下一级接口...
6逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)

6.接口测试的步骤有哪些?
1发送接口请求
2测试接口获取返回值
3断言:判断实际结果是否符合预期

7.接口测试中依赖登录状态的接口如何测试?
依赖登路状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的Session或Cookie才能发送成功,
在构建POST请求时添加必要的Session或Cookie

8.依赖于第三方数据的接口如何进行测试?
可以利用一些MOCK工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回
可以使用接口工具直接调用第三方数据接口的webservice,通过返回值来查看第三方数据
的接口省份调用正常

9.接口的加密测试中对称加密与非对称加密有什么区别?
对称加密是最快速,最简单的一种加密方式,加密与解密用的是同样的密钥,这种
方法在密码雪种叫做对称加密算法。
对称加密的一大缺点是秘钥的管理与分配,如何把秘钥发送到需要解密你的消息的人
手里是一个问题,在发送秘钥的过程中,秘钥有很大的风险会被黑客拦截,现实中
通常的做法是将对称加密的秘钥进行非对称加密后,如何传送给需要的人。
非对称加密为数据的加密与解密提供非常安全防范,因为它使用了一对密钥,公钥和私钥
,私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人,非对称加密使用
这对秘钥中的一个进行加密,而解密则需要另一个密钥。

10.TCP,UDP的区别?
11.三次握手与四次挥手?
三次握手 请求连接 -> 服务端确认 -> 客户端确认
四次挥手 请求断开 -> 服务端同意 -> 服务端释放连接 -> 客户端确认

11.Cookie和Session的区别?
Cookie在客户端,可以被篡改
Session在服务端,不能被篡改

接口文档中一个接口包含的信息?
接口的请求方式
接口个URL地址
接口的功能描述
接口的请求参数
接口的响应参数

1、get请求参数全部放在URL中,post请求将所有参数放在body中;
2、Get请求URL长度受限制,post请求他的参数是放在body中长度可以无限放大。3、Get请求安全级别比post请求低;
4、GET在浏览器回退时是无害的,而POST会再次提交请求。
5、GET产生的URL地址可以被Bookmark,而POST不可以。
6、GET请求会被浏览器主动cache,而POST不会,除非手动设置。
7、GET请求只能进行url编码,而POST支持多种编码方式。
8、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
9、GET请求在URL中传送的参数是有长度限制的,而POST么有。
10、对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
11、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
12、GET参数通过URL传递,POST放在Request body中。
.
有做过接口测试吗?接口测试如何做的
1、 从开发那边获取对应的接口文档;确定接口请求类型,是get还是post;
2、根据接口文档阅读和分析,组件我们的接口:知道当前接口的基本信息如:url 、请求类型、参数、请求头等

3、 进行接口测试,根据接口文档设计测试用例,根据接口测试用例利用工具进行接口测试
4、结果分析
如果没有接口文档怎么进行处理
1、谁开发的接口就问对应的开发人员
2、抓包分析

怎么分析是前端还是后端问题?
找出接口文档,fiddler查看请求参数和响应结果。若是调用接口传参有误,导致问题,前端的锅。 若是传参正确,返回结果异常,后端的锅。
若是返回值异常值前端没做异常处理,前端同时也要背锅。
这些都可以通过fiddler打断点,修改请求参数、响应参数来测试验证本质是拆分每一步,查证每一步谁有问题,从源头找出问题

调用第三方接口时,你是怎么进行测试的?
在和第三方签署协议时,第三方会提供一份接口文档;根据接口文档开发编写一个类似第三方的接口,这个接口将各种表字段存放在本地(数据库),比如银行卡的余额信息表cus_balance_info;在表中模拟用户,在进行接口测试时调用这个模拟的第三方接口,输入银行卡信息,对用户的余额进行校验。

什么时候做接口测试?
在UI界面还没形成前,在没有接口文档通过fiddler抓包来测

注意点:
接口的互调,这个接口的response中有值,需要作为下一个接口的使用测试桩:本质就是处理请求的代码;
涉及第三方系统,上线前会有一次联调的机会,真实对接,相当于第三方临时表,模拟资金支付,这就是叫测试数据;

多测师讲解自动化测试 _接口面试题(001)_高级讲师肖sir的更多相关文章

  1. 多测师讲解jmeter _基本介绍_(001)高级讲师肖sir

    jmeter讲课课程 一.Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. ...

  2. 多测师讲解自动化selenium___定位元素002___高级讲师肖sir

    高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...

  3. 多测师讲解自动化测试 _RF封装_(三层模式)高级讲师肖sir

    rf自动化:分层作用: 1.项目----有重复的流程(借款-登录,出借-登录) 2.借款--登录(8个流程)机器人:案例层(用例)写在机器人中,1个机器人=1条用例 分三个层次: 1.案例层(存放用例 ...

  4. 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir

    讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...

  5. 多测师讲解自动化测试_rf节课内容_高级讲师肖sir

    *** Settings ***Library Selenium2LibraryLibrary OperatingSystem *** Variables ***${name} zhangsan@{l ...

  6. 多测师讲解第一个月 _综合面试题_高级讲师肖sir

    第一个月综合面试题 1.  冒烟测试是什么意思?  对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别?  4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...

  7. 多测师讲解自动化--rf断言(下)--_高级讲师肖sir

    1.Page Should Contain 1.1存在页面上的内容 1.2 不存在页面上的内容, 运行抛异常 1.3 Page Should Not Contain 1.4 1.5 输入页面元素,判断 ...

  8. 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir

    断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...

  9. 多测师讲解python_模块(导入模块和内置模块)_高级讲师肖sir

    #自定义模块# from aaa import * #指定导入某个包中具体的类.函数.方法## A.fun1(2,2) #import +模块名 :# # import +模块名+.+.+# # 导入 ...

  10. 多测师讲解html _图片标签003_高级讲师肖sir

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>段 ...

随机推荐

  1. vue3剖析:响应式原理——effect

    响应式原理 源码目录:https://github.com/vuejs/vue-next/tree/master/packages/reactivity 模块 ref: reactive: compu ...

  2. 5分钟掌握企业LVM磁盘划分

    逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物 ...

  3. 2020年 .NET ORM 完整比较、助力选择

    .NET ORM 前言 为什么要写这篇文章? 希望针对 SEO 优化搜索引擎,让更多中国人知道并且使用.目前百度搜索 .NET ORM 全是 sqlsugar,我个人是无语的,每每一个人进群第一件事就 ...

  4. [记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题

    [记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题 目录 [记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题 0x00 摘要 0x01 引言 0x02 ...

  5. 面试题:JVM在Java堆中对对象的创建、内存结构、访问方式

    一.对象创建过程 1.检查类是否已被加载 JVM遇到new指令时,首先会去检查这个指令参数能否在常量池中定位到这个类的符号引用,检查这个符号引用代表的类是否已被加载.解析.初始化,若没有,则进行类加载 ...

  6. Oracle学习(十七)数据库锁在分布式系统里的应用(老板,乐观锁了解一下?~)

    一.引言 随着业务量的增加,单机部署已经无法满足日常需求了,我们可能会把代码部署到多台服务器上去来进行服务的扩容,也就是负载均衡,那在这种场景下,怎么能实现锁的概念呢? 那么我们知道如果是一台主机部署 ...

  7. 函数的arguments对象的使用和介绍

    arguments对象用于函数,当不知道传递了多少个实参,就可以使用arguments对象进行存储传递过来的实参(这时不需要写形参). arguments是一个内置对象,也是一个伪数组,我们可以按照数 ...

  8. Token机制,session机制

    对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他? session机制:就是一个id号(cookie里面携带一个sessionid), ...

  9. SON Web Tokens 工具类 [ JwtUtil ]

    pom.xml <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt< ...

  10. NoActionBar主题下如何添加OptionsMenu

    菜单无法显示 为了不显示标题栏,所以主题使用了 NoActionBar,这也直接导致选项菜单无处显示 解决方案 添加一个ToolBar,自定义标题栏 <androidx.appcompat.wi ...