面试问接口测试用例(面试问接口测试用例怎么答)

网友投稿 329 2023-03-12


本篇文章给大家谈谈面试问接口测试用例,以及面试问接口测试用例怎么答对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享面试问接口测试用例的知识,其中也会对面试问接口测试用例怎么答进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

测试工程师面试,接口测试问题总结

1、什么是接口?

2、什么是接口测试?

3、接口组成的要素有哪些?

4、Python 的 requests 包是干什么的?

5、如何使用 Python 的 requests 包?

6、为什么开展接口测试?

7、为什么要写接口测试用例?

8、接口测试用例设计主要考虑哪些?

9、接口测试用例包含哪些内容?

10、接口测试如何设计用例?

11、通用接口用例设计?

12、接口测试报告包含哪些内容?

13、测试指标范围包含哪些?

14、做接口测试运用过哪些测试工具?

15、抓包工具用过哪些?

16、为什么进行抓包测试?

17、TCP/IP 参考模型有哪几层?

18、常用协议的端口号?

19、常见的状态码有哪些?

20、你们公司的接口测试流程是怎样的?

21、请详细阐述接口测试和 UI 测试在测试活动中是如何协同测试的?

22、接口测试注意事项?

23、接口测试执行中对比数据库吗?

24、请简述一下 cookie、session 以及 token 的区别?

25、谈谈你对 HTTP 协议的了解?

26、你对 http 请求跟 webservice 请求的了解?

27、在接口测试中关联是什么含义?如何使用 Postman 设置关联?

28、接口自动化测试框架一般分为几层?

29、测试框架里如何做到数据和代码分离?

1、什么是接口?

接口就是 API,意思是应用程序编程接口。

接口本质上是程序开发的函数和方法,提供参数和返回值。

2、什么是接口测试?

接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。

3、接口组成的要素有哪些?

接口访问的地址、请求的方法、参数、返回值

(1)接口访问的地址 协议://IP 地址或域名:端口号/应用名/功能名

(2)请求的方法 get、post 等

(3)参数 用户使用接口时,需要向接口提供的数据。

(4)返回值 接口给用户的反馈结果。

4、Python 的 requests 包是干什么的?

requests 是一个 HTTP 库,作用是发送 HTTP 请求,获得响应,往往使用在网络爬虫,接口自动化测试中。

5、如何使用 Python 的 requests 包?

(1)安装 Python

(2)安装 requests 模块

(3)创建.py 文件

(4)导入 requests 模块

(5)编写 Python 代码

(6)调用 requests 方法

6、为什么开展接口测试?

接口测试属于集成测试、测试接入越早,就越能在项目早期发现问题,修复问题成本降低。

接口测试非常快速,UI 自动化执行一个测试用例 10s 左右,接口用例执行一般毫秒级。

7、为什么要写接口测试用例?

(1)理清思路,避免漏测和重复测试。

(2)提高测试效率、跟进测试进度、告诉领导做过、跟进重复性工作。

(3)更好的记录问题、发现问题、复现问题、同时这也是接口测试流程中的一个产物。

8、接口测试用例设计主要考虑哪些?

(1)功能是否正常。

(2)功能是否按照接口文档实现、是否依赖业务、异常情况(参数异常、数据异常)、安全测试等。

9、接口测试用例包含哪些内容?

用例名称、接口地址、请求方式、前置条件、描述、请求头部、请求参数、状态码、预期返回结果

10、接口测试如何设计用例?

接口测试一般考虑入参形式的变化和接口的业务逻辑。

一般设计接口测试用例采用等价类、边界值、场景法居多。

接口测试用例设计思路:

(1)接口业务逻辑测试,接口逻辑测试是指根据业务逻辑,输入参数,输出值的描述,对正常输入情况下所得输出值是否正确的测试,也就是测试对外提供的接口服务是否正常。

(2)模块接口测试,模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑正确性而进行的测试模块,接口测试主要包括以下几个方面

a.鉴权码 token 异常(为空、没有、错误、过期)

b.其他参数的异常,必填项的检查,参数的长度、类型、格式异常。常规的参数有数字,字符串,日期;参数长度,位数、身份证、电话的长度;参数的类型,数字精度,字母,中文,带空格的参数,特殊字符;日期格式,日期年月日,年月日时分秒,日期格式(包含/-:等)

c.错误码异常覆盖

11、通用接口用例设计?

(1)通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

(2)参数组合:现在有一个操作商品的接口,有个字段 type,传 1 的时候代表修改商品,商品 id、商品名称、价格有一个是必传的,type 传 2 的时候是删除商品,商品 id 是必传的,这样就要测参数组合了,type 传 1 的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

(3)接口安全:绕过验证,比如说购买了一个商品,它的价格是 300 元,那我在提交订单时候,我把这个商品的价格改成 3 元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功。参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。密码安全规则,密码的复杂程度校验。

(4)异常验证:所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是 10 的,传 11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

12、接口测试报告包含哪些内容?

系统接口概况、测试目的与范围、测试工具与资源、测试记录及结果分析(单场景接口、混合场景接口)、测试结论

13、测试指标范围包含哪些?

(1)被测接口接收请求和返回报文。

(2)被测接口返回状态、被测接口对应业务逻辑处理、涉及数据沉淀的处理、复杂场景下多个接口串联交互。

14、做接口测试运用过哪些测试工具?

(1)Postman

(2)JMeter

(3)SoapUI

(4)Python + requests

(5)Java + HttpClient

(6)Java + OkHttp

15、抓包工具用过哪些?

(1)Fiddler

(2)Charles

(3)Wireshark

16、为什么进行抓包测试?

有些时候公司没有标准的接口文档,测试人员只能抓包来获取接口信息。

抓包可以迅速找到请求,通过抓包可以查看整个请求过程,以及响应过程,可以通过抓包来分辨前台还是后台 bug。

通过抓包,可以查看是否有敏感信息泄露,比如用户密码和个人账号信息等数据。

通过抓包进行测试,拦截请求,修改请求数据,查看对应响应结果,抓包本身就是接口测试的一部分。

17、TCP/IP 参考模型有哪几层?

应用层、传输层、网络层、网络接口层

18、常用协议的端口号?

(1)21/tcp FTP 文件传输协议

(2)22/tcp SSH 安全登录、文件传送(SCP)和端口重定向

(3)23/tcp Telnet 不安全的文本传送

(4)25/tcp SMTP Simple Mail Transfer Protocol(E-mail)

(5)69/udp TFTP Trivial File Transfer Protocol(微型文件传输协议)

(6)80/tcp HTTP 超文本传送协议(WWW)

(7)110/tcp POP3 Post Office Protocol(E-mail)

(8)443/tcp HTTPS used for securely transferring web pages

(9)3389/tcp 远程访问 5631/tcp

(10)5632/udp pcanywhere 端口号

(11)1433 SqlServer 服务端口号

(12)1521 Oracle 服务端口号

(13)3306 Mysql 服务端口号

(14)8080 Tomcat 默认服务端口号

19、常见的状态码有哪些?

(1)1XX 信息提示,用于指定客户端相应的某些动作。

(2)2XX 成功,用于表示请求成功。

(3)3XX 重定向,用于移动的文件并且常被包含在定位头信息中制定的新的地址信息。

(4)4XX 客户端错误,用于指出客户端的错误。

(5)5XX 服务器错误,用于指出服务器的错误。

20、你们公司的接口测试流程是怎样的?

(1)从开发中取得接口文档,了解接口业务,主要包括接口地址、请求方式、入参、出参、返回格式等信息。

(2)使用 Jmeter 进行接口测试,创建一个线程组,然后建立一个 http 请求默认值,再新建很多 http 请求,一个请求是一个用例,输入相应接口路径、访问方式、参数等,创建断言和察看结果树。

(3)最后调用并执行测试用例,编写测试报告。

(4)在做接口测试的时候遇到过很多问题,都是自己独立解决的,比如返回值乱码(修改 Jmeter 的配置文件为 UTF-8)。

21、请详细阐述接口测试和 UI 测试在测试活动中是如何协同测试的?

接口测试和 UI 测试这两块其实是有一部分是重叠的,UI 测试是通过前端写的界面来调用接口,而接口测试是直接调接口。所以排除前端的处理的逻辑和调用的正确性,在理论上接口测试是可以覆盖所有的 UI 测试。但实际过程中,如果只是在接口层覆盖所有的业务流,在 UI 上只测试前端的逻辑,最终的结果可能会是忽视很多原有的功能点,导致了 UI 测试的不充分。所以存在多人分工且时间充分的时候可以尝试接口去做业务流的全覆盖,否则不要轻易尝试。

22、接口测试注意事项?

(1)改变请求参数,看响应结果是否和接口文档一致。

(2)查看参数是否有敏感信息(比如个人账户信息,资金信息)。

(3)查看是否对关键参数进行加密处理(密码信息)。

(4)所有列表页接口必须考虑排序值。

(5)接口返回的图片地址能否打开,图片尺寸是否符合需求。

(6)接口有翻页时,页码与页数的异常值测试。

(7)当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求每个接口入参的默认值、异常类型、非空校验。

(8)入参支持多个值时,要考虑传的值的个数多的情况下,接口会不会报错。

23、接口测试执行中对比数据库吗?

肯定要对比,因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查。

24、请简述一下 cookie、session 以及 token 的区别?

cookie 数据存放在客户的浏览器上、session 数据放在服务器上、token 是接口测试时鉴权码,一般情况下登陆后才可以获取到 token,然后在每次请求接口时需要带上 token 参数。

cookie 不安全,别人可以分析存在本地的 cookie 并进行 cookie 欺骗,考虑到安全应当使用 session 可以将登录信息等重要信息存放为 session,其他信息可以保存在 cookie。

25、谈谈你对 HTTP 协议的了解?

超文本传输协议,端口为 80,是由请求和响应两部分组成的。

请求是由请求头,请求行,请求正文组成;响应是由响应头、响应行、响应正文组成。

面向安全的话使用 https。

26、你对 http 请求跟 webservice 请求的了解?

(1)http api 接口:是走 http 协议,通过路径来区分调用的方法,请求报文都是 key-value 形式的,返回报文一般都是 json 串,有 get 和 post 等方法,这也是最常用的两种请求方式。可以使用的工具有 postman、RESTClient、jmeter、loadrunner 等。

(2)webservice 接口:是走 soap 协议通过 http 传输,请求报文和返回报文都是 xml 格式的,都是通过工具才能进行调用与测试。可以使用的工具有 SoapUI、jmeter、loadrunner 等。

27、在接口测试中关联是什么含义?如何使用 Postman 设置关联?

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行。

在 Postman 中设置关联的步骤如下:

(1)通过正则表达式提取的方式或 json 取值的方式把下一个接口需要的信息从上一个接口截取出来。

(2)使用设置全局变量的代码把取出来的值保存到全局变量里。

(3)在下一个接口中,使用(全局变量)代替要替换的静态值。

28、接口自动化测试框架一般分为几层?

自动化测试框架一般分为 5 层(配置层,脚本层,数据层,测试报告层,驱动层)

接口项目工程规划大致可分为几类,首先是测试结果类,比如说叫 test_rusult,里面存放一些比如日志文件,测试报告。然后是测试用例 testcase,里面分模块存放测试用例。接下来是公共方法类,比如说叫 public,或者是 tools,里面存放一些,读取 excel 数据的方法,发送 http 请求的方法,收集 log 日志的方法,发送邮件,操作数据库等方法。还有就是配置文件类,比如说叫 config,里面存放一些指定运行部分用例的配置文件,连接数据库的配置文件。最后是写一个 run 方法,运行所有的用例。

29、测试框架里如何做到数据和代码分离?

第一种:写在 excel 表格里,像这种主要是读取 excel 数据有点麻烦,常用的用来读取 excel 的第三方库有 openpyxl,xlrd 等。当然读取 excel 数据最好用的还是用来做数据分析的 pandas 模块,不用写那么多 for 循环。

第二种:数据存放到 yaml 文件里,一个模块或者是一个功能写一个 yaml 文件,最后写个读取 yaml 文件的公共方法就行了。yaml 格式的文件比较简单。

第三种:存放在数据库里面。

第四种:数据存放在 json 文件里。

接口测试面试常见问题

1.什么是接口测试?

·接口测试是测试系统组件间接口的一种测试方法。

·接口测试的重点是检查数据的交换,传递的正确性,以及接口间逻辑依赖关系

·提交接口测试的重要意义:实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期。

2.  接口自动化测试的流程是什么?

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

3.  GET请求和POST请求区别是什么?

· GET请求用于信息获取,而且应该是安全和幂等的;在做数据查询时,建议用get方式。如:商品信息接口、搜索接口、博客访问接口等。

· POST请求表示可能会修改服务器上资源的请求;在做数据添加、修改时,建议用post方式,如:微博贴吧上传图片接口、登录注册接口等。

GET是从服务器上获取数据,POST是向服务器传送数据。这个说法是有误的。GET/POST都可以提交数据。Get请求也可以向服务器传递数据。Post请求也需要服务器返回数据。

4.  接口测试的常用工具有哪些?

· Postman

·Jmeter

·SoapUI

5.  HTTP接口的请求参数类型有哪些?

·查询字符串参数(Quert string Parameters),参数会以url string的形式进行传递。

·请求提参数(Request body)一般用于POST请求,可以使用Content-Type来指定不同参数类型

6.  如何从上一个接口获取相关的响应数据传递到下一个接口?

先从上一个接口中的响应数据获取对应的返回值,然后使用正则表达式或者json解析来提取要获取的值,然后存储在一个变量中,最后在下一个接口中直接引用即可。

7.  接口测试用例的编写要点有哪些?

· 请求参数必填项、可选项等

·输入输出合法、非法参数等

·请求参数边界值等

·响应数据校验

·接口之间逻辑校验,如果两个请求有严格的先后顺序,需要测试调转顺序的情况

8.  接口测试的步骤有哪些?

发送接口请求

测试接口获取的返回值

断言:判断实际结果是否与预期相同

9.  接口测试中依赖登陆状态的接口如何测试?

依赖登陆状态的接口本质上是在每次发送请求时需要带上Session或者Cookie才能发送成功,在构建POST请求时添加必要的Session或者Cookie

10. 依赖第三方数据的接口如何进行测试?

可以利用一些MOCK的工具(如Json Server,Easy Mock)来模拟第三方的数据返回,最大限度地降低对第三方数据接口的依赖。

接口测试的测试用例该怎么写呢?

接口测试面试问接口测试用例

接口:主要是子模块或者子系统间交互并相互作用的部分。

这里说的接口是广义的,客户端与后台服务间的协议;插件间通信的接口;模块间的接口;再小到一个类提供的方法;都可以理解为接口。因此,可以分析,系统间的接口包含三部分:输入、处理逻辑、输出。

接口测试:是指针对模块或系统间接口进行的测试。

分析一个接口:

获取接口文档:和黑盒测试一样,面试问接口测试用例我们是从需求文档中去挖掘测试点,设计测试用例。对于接口测试,同样是有对应的接口文档的。

分析接口文档,提取测试点:

1)输入:接受哪些参数、参数的类型、可选参数和必选参数等;根据输入参数采用等价类、边界值分析法等进行设计。

2)业务逻辑:对于一个接口,不同的输入参数或组合,流程或状态的转移是不同,可以根据业务逻辑画出流程图或状态转移图,确保每种状态至少被访问面试问接口测试用例了一次。

3)输出:根据文档规定的输出,反向设计测试数据,使所有的输出状态都被包含了;

测试用例:同时对输入、业务逻辑、输出进行考虑时,肯定会存在用例的冗余,在最大限度覆盖业务功能和规则下,选取最优用例集合。同时,需要考虑异常数据和场景。

面试官95%会问的接口测试知识

接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口是看不见的,但是可以访问!

DNS是域名系统(Domain Name System) ,DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。

HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接 的应用层协议。 由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。

使用fiddler工具抓取HTTPS, 具体操作请查看文末领取教程

1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)

2xx -- 成功(表明服务器成功地接受了客户端请求)

3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)

4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)

5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)

常见的返回码有:

200 OK - [GET]:服务器成功返回用户请求的数据

201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功

202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT - [DELETE]:用户删除数据成功

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作

401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)

403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止

404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

HTTP协议常用的请求方式有如下几种:

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

区别:

(1)传送方式:get通过地址栏传输,post通过报文传输

(2)传送长度:get参数有长度限制(受限于url长度),而post无限制

(3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)

(4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留

(5)在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式

请求报文: 一个HTTP请求报文由请求行(Request Line)、请求头(Header)、空行(Blank Line)和请求体(Body)4个部分组成。

响应报文: HTTP响应报文和请求报文的结构差不多,由状态行、响应头、空行、响应体4个部分组成。

是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

解决方案:通过cookie和session来保持状态。

请求body;请求url+请求body:

Content-type:

application/x-www-form-urlencoded: 表单提交--键值对, form

multipart/form-data:文件上传---文件 ,MIME

application/json,text/xml:

http协议目前有4个版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。

1.存储位置不同:Cookie 是将用户数据通过加密的方式保存在客户端,大多数情况 Cookie 存储在浏览器;Session 是用于控制客户端和服务端的连接,Session 存储在服务器;

2.存储容量不同:单个 Cookie 保存的数据不得超过 4kb,一个站点最多 20 个 Cookie,Session 一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

3.存取方式不同:Cookie 只能用 ASCII 字符串,通过编码方式获取 Unicode 字符或者二进制数据,不好存储复杂的信息,而 Session 能存储任何类型的数据;

4.隐私策略/安全性不同:Cookie 放在客户端,可以进行 Cookie 欺骗,所以不安全,Session 放在服务端,更加安全;

5.有效期不同:Cookie 可以设置属性达到长期有效,Session 依赖于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的过期时间默认为-1,只需要关闭窗口 Session 就会失效,就算不依赖 Cookie,用 UrL 重写也不能完成,如果 Session 超时时间过长,容易导致内存溢出;

6.服务器压力不同:Cookie 保存在本地,不存在服务端压力,Session 保存在服务端,每个用户产生一个 Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用 Cookie;

7.浏览器支持不同:如果浏览器禁用 Cookie,那么 Cookie 直接失效,Session 比较好点,可以用 URL 重写;

8.Cookie 和 Session 应用的场景:Cookie 一般用于记住用户的登录状态,如记录用户的习惯,购物车;而 Session 用于登录验证。

https在应用层。

会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。

在浏览器中输入URL并回车后,主要发生以下步骤:

解析URL,获取要访问的域名

DNS域名解析,根据访问的域名获得目标服务器的IP地址

浏览器与服务端三次握手建立TCP连接

连接建立成功之后就可以发送HTTP请求报文以及服务器返回HTTP响应报文

断开TCP链接

浏览器解析响应报文,渲染页面

软件测试面试题:WEB+网络|接口测试|性能测试|自动化测试


1. http代码表,常考题目

404:找不到资源

500:服务器内部错误,无法完成请求。

501:服务器不支持请求的功能,无法完成请求。

502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。

302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。

200:成功。

2. TCP/IP四层网络模型

链路层、网络层、传输层、应用层。

3. TCP/UDP区别?

TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。

UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。

4. html css js运行的先后顺序是什么?

界面加载的时候先加载html在加载css最后加载js

5. session和cookie的区别是什么

1. session存放在服务器端用来校验客户端的身份

2. cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份



1. 怎么用JMeter测试接口?

如果使用JMeter进行接口测试:

1) 测试前了解需求,根据接口规格说明书梳理业务;

2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);

3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;

4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;

5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;

6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;

7) 添加监听器,比如查看结果树,对测试结果进行监听;

8) 运行测试用例;

9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;

10) 针对测试中发现的问题,给开发提单,直到问题最终解决。

11) 最后输出测试报告。

2. 怎么用Postman测试接口?

如果使用Postman测试接口:

其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。

3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?

使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。

常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。



一般是我们功能测试完成最后两三天时间测试性能。

1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。

2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)

3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。

4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。

5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。

6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。



1. Python怎么定义一个函数?

你可以定义一个由自己想要功能的函数,以下是简单的规则:

1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

4) 函数内容以冒号起始,并且缩进

5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None


2 Python切片

3. Python上用过什么库/模块?

webdriver:定位和操作元素

time:设置等待时间

ActionChains:动作链,完成鼠标的相关操作

Keys:键盘的相关操作

WebDriverWait:设置显式等待

Expect_Conditions:针对单个元素,设置显式等待的场景

PIL:截图

Select:下拉选择框的操作

unittest python:自带的单元测试框架

HTMLTestRunner:运行脚本,生成报告

ddt:实现数据驱动测试,行为和数据分离

4. 你做过自动化测试吗?

我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。

假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)

5. 使用什么工具进行的自动化测试

使用的工具是Selenium(Web自动化工具)

6. 用的什么编程语言

用的Python

7. Selenium 用的是哪个版本的的?Python用的是哪个版本的?

用的是selenium 3.11.0和Python2.7.10

8. Selenium的工作原理?

1)对html元素定位

2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。

9. 元素定位方法有哪些?

要点:8种定位方法

1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;

2) 根据CSS选择器定位;

3) 根据 XPath 定位;

10. 子页面里的元素怎么定位?

先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。

11. 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?

要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。

1) 点击弹窗的确定按钮,用如下函数:

driver.switch_to_alert().accept()

2) 强行关闭,点击右上角的叉叉,用如下函数:

driver.switch_to_alert().dismiss()

3) 获取弹窗里的文字,用如下函数:

driver.switch_to_alert().text

12. 怎么运行自动化用例并生成测试报告?

以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。

13. 怎么定位/操作图片中的验证码?

用tesseract OCR引擎处理图片中的验证码,步骤:

(1)对整个屏幕截屏,保存成png格式的图片;

(2)在截取的图片中定位验证码图片的位置坐标;

(3)根据坐标对验证码截图;

(4)在图片中提取验证码,输入到输入框。

软件测试面试常见问题及答案是什么

一般软件测试的面试分为三轮:笔试,HR面试,技术面试。

前两轮,根据不同企业,或有或无,但最后一个技术面试是企业了解你“行不行”的关键环节,每个企业都会有的。

在平时的学习、工作中一定要善于总结,如果回答不好,面试官会认为你技术能力有限或者不勤于思考,是很容易被pass掉的。

简单为大家总结了些面试过程中经常会被问到的问题:


hr会问的几个问题

1.你觉得自己的优缺点是什么

2.你上一家公司的薪资是多少,调了几次薪

3.为什么从上一家公司离职呢

4.离职证明和背调可以吗?

5,你还有什么问题要问吗?

(这些问题都带坑!回答不好会死在这儿的,不知道怎么回答,可以百度下或者联系在线客服)

技术方面的问题

【功能方面】

1.你是怎样理解软件测试的

2.让你介绍你做的项目的业务流程

3.软件测试的流程

4..你认为什么是bug,说一下你印象深刻的bug,结合项目说一下你们公司有哪些类型的bug和bug评判严重程度的标准

5.如何保证软件测试的质量

6.如何保证你写的测试用例覆盖所有的场景

7.如果用户在正式环境发现一个bug,你在测试环境没有发现,怎么办

8.项目测试到什么程度就可以上线了

【场景方面】

1.让你写登录,支付,充值,购物车,文件上传,三角形,笔,水杯等的测试点(80%的公司会让你分析测试点!!!)

【计算机网络基础知识】

1.http协议的内容是什么?

2.请求头的内容有哪些

3.常见的状态码有些

4.http和https的区别有哪些

5.tcp和udp的区别

6.请描述下tcp的三次握手四次挥手的过程

7.网关的作用

8.osi七层模型每一层的作用

9.session是什么,cookie是什么,有什么使用场景

10.session和cookie的区别

【接口测试】

1.你认为的接口是什么

2.接口测试工具工作的原理是什么呢?

3.接口中包含哪些内容

4.接口用例如何写

5.你是如何做接口测试的,使用的什么工具?

6.接口自动化了解过吗

7.get和post的区别

【自动化测试】

1.可能会问到selenium

2.selenium元素定位的方式,显示等待,隐式等待,强制等待的区别等

3.接口自动化脚本的编写原理和过程

这块可以不用担心,只要会一些简单的就可以了,因为对于初中级测试来说,自动化是一个加分项,一般如果自动化掌握的很熟练的同学薪资是在12-25k之间的

【其他测试问题】

1.简述转包过程,你用的抓包工具是什么

2.如何分析一个bug是前端还是后端bug

3.url后面跟数据的话如何拼接上去

4.抓包的原理是什么

5.你们公司使用的bug管理工具是什么

6.弱网测试是如何实现的

7.web测试和app测试的区别是什么

8.给你一个软件你会如何进行测试

9.兼容性测试你是如何做的(从app 和 web两方面回答)

10.冒泡排序之类的一些代码题

11.如果在正是环境发现bug测试环境没发现怎么办

12.如果有一个bug,怎么判断这个bug是前端代码导致的还是后端代码导致的

这些问题回答的正确与否直接决定了你能否留下,甚至能拿多少薪资的问题,多回答对一个问题,就有可能多为自己争取到500-1000块的工资呢。如果不知道怎么回答,可以私信细聊哦!

关于面试问接口测试用例和面试问接口测试用例怎么答的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 面试问接口测试用例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于面试问接口测试用例怎么答、面试问接口测试用例的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ios 接口设计模式(ios接口是什么意思啊)
下一篇:java网银接口开发(银行java开发)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~