首页 > 其他分享 >肖sir__ 接口测试面试题(12.2)

肖sir__ 接口测试面试题(12.2)

时间:2024-04-09 11:00:50浏览次数:423  
标签:__ sir 面试题 HTTP 请求 get 接口 参数 测试

1.postman接口测试,它有一个功能可以设置参数化,你有用过吗

1、创建数据文件,支持数据格式文件分别为csv和json、txt等,这里我们以创建txt文档为例

2、请求中对应位置替换参数变量:请求参数中用{{参数名}}替换,代码中通过:data.参数名来进行替换,注意这里的变量名要和txt文档中的变量名一致

3、通过Runner-Data读取数据文件来运行:选中集合Collection->点击Run->然后选择需要批量运行的接口->选择“Choose files”,从文件选择区加载数据文件,通过点击Data File Type选择文件类型,点击Preview来预览数据,设置对应迭代次数,每次迭代都将使用你的数据文件中的一行,如果迭代次数超过数据文件中的行数,将重复执行最后一行,然后点击运行就可以得到结果,当然,参数化以后为了验证每个数据得到的结果需要在Tests里面进行断言。

2.你测试过哪些接口

接口类型: http 接口 webserver 接口

项目中接口:用户登录接口;添加用户接口;查询栏目接口;文章管理接口,删除用户接口   删除栏目接口;

3.有做过接口测试吗?接口测试你们是怎么测的

做过

首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、请求方式,入参、出参,token鉴权,返回格式等信息。

然后使用Postman或Jmeter工具执行接口测试

一般使用Jmeter的步骤是这样的:

1)新建一个线程组。

2)然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口)

3)再新建很多HTTP请求,一个请求一个用例。(输入接口路径,访问方式,参数等。)

4)然后创建断言和查看结果树。

最后调试并执行用例,最后编写接口测试报告。

4.多接口怎么测(postman里面有一个批量处理)

1、创建集合:

在Postman的主界面,点击左侧的“Collections”标签页,然后点击“+”图标来创建一个新的集合。为集合命名并添加描述,以便后续识别和管理。根据需要,可以设置集合中的请求授权方式(如Bearer Token、Basic Auth等)。

2、在集合中创建请求:

选中刚刚创建的集合,然后点击集合上的“…”图标,在下拉菜单中选择“Add Request”。输入请求的名称,并填写请求地址(URL)、请求方法(GET、POST等)以及相关的请求参数和头信息。你可以为请求设置预请求脚本、断言等,以便在测试过程中进行更复杂的验证和处理。

3、引用集合中的变量:

如果需要在多个请求之间共享某些值(如API密钥、用户ID等),可以在集合中创建全局变量,并在请求中引用这些变量。在Postman中,你可以使用双花括号语法({{variable_name}})来引用变量。

4、复制和修改请求:

对于需要测试多个相似请求的场景,你可以复制已有的请求,并根据需要修改相应的参数或数据。右键点击请求,选择“Duplicate”,然后修改复制后的请求中的相关部分。

5、批量执行集合测试:

在集合的右侧,点击三角箭头图标,打开集合操作页。点击“Run”按钮,打开“Collection Runner”页面。在“Collection Runner”页面中,你可以配置环境变量、设置循环次数、延迟时间等参数。点击“Run”开始批量执行集合中的请求。

6、查看测试结果:

执行完成后,你可以在“Collection Runner”页面查看测试结果概览,包括每个请求的响应时间、状态码等信息。如果需要更详细的测试结果,可以点击“View Results”或导出测试结果文件进行进一步分析。

 

5.get和post请求的区别

1、get请求一般用来请求获取数据

      post请求一般作为发送数据到后台,传递数据,创建数据

2、get请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,且参数的长度也有限制(2048字符)

      post请求则是将传递的参数放在request body中,不会在地址栏显示,安全性比get请求高,参数没有长度限制

3、get请求刷新浏览器或者回退没有影响

      post请求则会重新请求一遍

4、get请求可以被缓存,也会保留在浏览器的历史记录中

      post请求不会被缓存,也不好保留在浏览器的历史记录中

5、get请求通常是通过url地址请求

       post常见的则是form表单请求

6、get产生一个tcp数据包

      post产生两个tcp数据包

7、get产生的URL地址可以被Bookmark

      而post不可以

8、get请求会被浏览器主动cache而post不会,除非手动设置

9、对参数的数据类型,get只接受ASCII字符,而post没有限制。

10、get比post更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

6.接口请求的基本结构

1、请求方法

2、请求url

3、请求头

4、请求体

5、响应状态码

6、响应头

7、响应提

7.接口自动化测试怎么做的

1. 需求分析:确定要测试的接口和功能,了解接口的预期行为和输入输出。

2. 环境搭建:配置测试环境,包括开发、测试和生产环境的服务器、数据库以及相关工具。

3. 选择测试框架: 选择适合项目的测试框架,如JUnit、TestNG、PyTest等。

4. 编写测试用例: 根据需求编写测试用例,包括测试数据、预期结果和请求参数等。

5. 接口录制与回放(可选):使用工具录制人工操作,然后将其转化为自动化脚本。

6. 编写测试脚本:使用选定的测试框架,编写测试脚本来执行测试用例。

7. 参数化和数据驱动(可选):使用不同的输入数据来测试不同的情况,增加测试覆盖率。

8. 执行测试:运行测试脚本,发送请求到被测接口,获取响应,并进行断言验证。

9. 生成报告: 生成测试报告,记录测试结果、通过率、失败用例等信息。

10. 持续集成(CI/CD)集成(可选):将自动化测试融入持续集成流程,自动触发测试并及时反馈结果。

11. 维护与更新:随着项目的演进,及时更新和维护测试脚本,保持测试的有效性。

12. 性能和安全测试(可选): 针对接口进行性能和安全方面的测试,确保系统在负载和安全性方面表现良好。

8.业务中接口测试的业务请求是怎样的?

一、正常测试

(1)全部必填参数

(2)全部参数(必填+非必填)

(3)参数组合(必填+部分非必填)

(4)传参格式:x-www-urlcode、json 格式测试:传递json串     ;传递非json格式情况 error code

(5)默认值测试: 很多情况一些非必填的参数会有默认值

 (6)非空测试:无论是必传的和非必传的参数,传递的key是正确的,但是value=null,这时候返回结果是否正确

8、 异常测试

1、数据异常:长度、类型、是否为空、不满足业务等(注意:与功能测试一模一样)

2、参数异常:多参、少参(少参一般针对都是必填项)、无参、错误参数等

3、数值限制:分数限制、金币限制、等级限制等等。

(8)检查接口的容错性,假如传递数据的类型错误时是否可以处理

(9)接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理

9.调用接口异常有哪些测试点?

1、提交时快读多次点击,频繁添加删除

2、幂等校验(或重复提交)

3、连接超时或者失败时需重试

4、缓存测试(缓存失败、缓存溢出、)

5、与第三方交互(与第三方的交互一般都是mq交互或服务调用,所以在测试过程中会重点关注幂等校验以及服务调用超时的情况。

测试方法:

重复发送mq

10.是怎么处理接口超时的?

定义超时时间、重试机制、分析日志和监控

11.一个完整的请求有哪几部分组成?12.请求方式有哪些?

请求头 请求体  响应头 响应体

12.请求方式有哪些?

get  post  put  delete

13.请求正文的文本格式?

text

javaScript

json

html

xml

14.请求头包含哪些内容

1. User-Agent:标识客户端使用的浏览器和操作系统信息。可以通过$_SERVER['HTTP_USER_AGENT']获取。

2. Accept:指定客户端能够处理的内容类型,即可接受的媒体类型。可以通过$_SERVER['HTTP_ACCEPT']获取。

3. Content-Type:指定请求体中的数据格式类型。常见的取值有application/json、application/x-www-form-urlencoded等。可以通过$_SERVER['CONTENT_TYPE']获取。

4. Authorization:用于进行身份验证的凭证信息。常见的取值有Bearer Token、Basic Authentication等。可以通过$_SERVER['HTTP_AUTHORIZATION']获取。

5. Cookie:包含来自客户端的Cookie信息。可以通过$_SERVER['HTTP_COOKIE']获取。

6. Referer:指示当前请求是从哪个URL页面发起的。可以通过$_SERVER['HTTP_REFERER']获取。

7. Host:指定服务器的域名或IP地址。可以通过$_SERVER['HTTP_HOST']获取。

8. X-Requested-With:指示请求是否由Ajax发起的。通常在Ajax请求中会设置该头部字段,取值为"XMLHttpRequest"。可以通过$_SERVER['HTTP_X_REQUESTED_WITH']获取。

9. Content-Length:指定请求体的长度。可以通过$_SERVER['CONTENT_LENGTH']获取。

10. Cache-Control:控制缓存行为的指令。用于指定客户端和代理服务器如何缓存响应。可以通过$_SERVER['HTTP_CACHE_CONTROL']获取。

 

 

15. 响应头包含哪些内容

HTTP/1.1:表示超文本传输协议 版本为1.1版本 URL统一资源定位符

响应状态:200

Server:服务器名称 Server: Apache/2.4.1 (Unix)

Set-Cookie:设置HTTP Cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

 

Content-Type:设置响应体的MIME类型 Content-Type: textml; charset=utf-8

Transfer-Encoding:设置传输实体的编码格式,目前支持的格式: chunked, compress, deflate, gzip, identity

Date:设置消息发送的日期和时间 Date: Tue, 15 Nov 1994 08:12:31 GMT #接口响应时间

16、常见的http响应状态码

200 (状态码)ok  

 301 (资源 网页等)被永久转移到其他URL  

404 请求的资源网页等不存在

500 内部服务器错误

17.postman参数化设置如何设置?

用{{}}花括号

在环境变量中设置参数

 

18.postman 如何设置断言

在tests中设置断言

 断言状态码

断言时间

断言响应内容

 

19.postman 如何设置全局变量和环境变量

 

20.接口测试用例设计主要考虑哪些方面

接口测试的用例设计,主要从输入和接口处理两方面考虑: 1)针对输入,可按照参数类型进行设计; 2)针对接口处理,可按照逻辑进行用例设计; 3)针对输出,可根据结果进行分析设计。1接口测试用例设计主要考虑以下几个方面:2

功能是否正常。

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

21.fiddler如何抓包

下载并安装fiddler软件;

打开fiddler软件,选择菜单栏中的“Tools” -> “Telerik Fiddler Options” -> “HTTPS”;

勾选“Decrypt HTTPS traffic”和子菜单,点击“Actions”下的“Export Root Certificate to Desktop”按钮,将根证书导出到桌面;

在设备上安装根证书,以便fiddler可以截获HTTPS流量;

在fiddler软件中选择需要抓包的应用程序,比如浏览器;

在浏览器中输入需要抓包的网址,fiddler会自动截获并显示网络请求和响应;

在fiddler中对请求和响应进行分析和修改,比如添加或删除请求头、修改请求参数、修改响应内容等;

分析完成后,可以保存抓包结果并进行后续处理。

22.fiddler如何设置断点,为什么设置断点

在tests中设置断言

1、before response:这个是打在request请求的时候,未到达服务器之前 (before之前)

2、after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。

命令行方式:

修改Request:bpu  (拦截发给指定服务器的请求)

清除断点拦截:bpu

修改Response:bpafter(拦截指定服务器返回的session)

清除断点拦截:bpafter

接口测试可以不需要管前端的,主要测后端的功能有一个程序出错了,大致猜出可能在某处会出错,就在那里下一个断点。调试程序,执行到那里,程序会停下来,这时可以检查各种变量的值,然后按步调试运行,观察程序的流向及各个变量的变化,便于快速排错。

23.fiddler如何手机代理,抓app包

 

24. 开发者工具F12如何查看接口请求

1、在相应界面点击F12

2、打开F12窗口以后,点击“网络”页签。

3、然后选择相应的接口

4、在右侧就可以看到请求url、请求方法和状态码了。

5、在接口连接上面也可以看到。

 

 

 

标签:__,sir,面试题,HTTP,请求,get,接口,参数,测试
From: https://www.cnblogs.com/xiaolehong/p/18123420

相关文章

  • openGauss数据库的安装与使用
    VMware+CentOS7.6+OpenGauss2.0.1极简版安装环境准备Arch:x86-64OS:Win11VMware:16.1.2安装CentOS7.6CentOS镜像:CentOS-7.6.1810VMware中创建新的虚拟机时:1CPU2Core4GBNAT其他选择默认配置即可CentOS引导安装:语言选择英语打开网络设置时区安装位置和分区软件......
  • openGauss事务机制中MVCC技术的实现分析
    openGauss事务机制中MVCC技术的实现分析概述事务事务是为用户提供的最核心、最具吸引力的数据库功能之一。简单地说,事务是用户定义的一系列数据库操作(如查询、插入、修改或删除等)的集合,从数据库内部保证了该操作集合作为一个整体的原子性(Atomicity)、一致性(Consistency......
  • ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
    ASP.NETMVCWebApi接口返回JOSN日期格式化dateformat全局配置WebApiConfigpublicstaticclassWebApiConfig{publicstaticvoidRegister(HttpConfigurationconfig){//WebAPI配置和服务//WebAPI路由config.MapHttpAttributeRoutes......
  • 网站SEO关键词布局时需要注意哪些方面?
    在网站SEO优化过程中,在进行网站关键词布局时,有一些重要的注意事项需要关注:采用“金字塔”布局策略这意味着应该将核心关键词放置在网站的首页上,以便搜索引擎能够快速识别和索引。次核心关键词则应该放在与列表内容相关的页面上,这样可以提高这些关键词的相关性。长尾......
  • Vue中实现输入框的自动补全功能
    一、百度文心一言的结果在Vue中实现输入框的自动补全功能,可以使用原生的input事件监听用户的输入,并通过计算属性或方法来提供匹配的自动补全建议。以下是一个简单的例子:<template><div><inputtype="text"v-model="userInput"@input="updateSuggestions"><ulv-......
  • word中的表格断开该怎么连起来?
    MicrosoftWord是现今办公室环境中最广泛使用的文档处理软件之一,它提供了丰富的功能。在日常使用中,经常会遇到需要在Word中插入表格进行排版的情况,但很多人都会遇到表格在分页时被断开的情况,这会影响文档的整洁性和可读性。为了帮助大家解决这个问题,以下是详细的处理方法。首......
  • excel表格中的数据怎么四舍五入进行取整?
    在Excel中,如果输入了一些小数,但只需要保留整数位,可以按照四舍五入的规则进行数值切换。通常有两种方法可以实现这个操作。一、设置单元格格式1.首先,需要在Excel中选择想要进行转换的数据列。然后右键,选择单元格格式选项,打开单元格格式设置。2.切换到数字下方的,数值的选项,......
  • 在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
    在Linux环境中运行的Web服务器和应用程序可能面临SQL注入和跨站脚本(XSS)攻击的风险。以下是在Linux中检测和防止这两种常见攻击的方法:1.SQL注入攻击的检测与防止:1.检测:审计日志分析:通过分析数据库和Web服务器日志,查找异常的SQL查询模式或错误消息,这些可能是SQL注入攻击的......
  • ETL工具-nifi干货系列 第十讲 处理器RouteOnAttribute使用教程,方便灵活控制数据流向
    1、今天我们一起来学习下处理器RouteOnAttribute,此处理器的作用是根据属性值进行路由进而来控制数据流的走向。类似于java中的if-else或者switch-case。如下图所示。 GenerateFlowFile产生测试数据,{"name":"Javax小金刚","id":"2"}JoltTransformJSON转换json结构:{"pers......
  • 2-48. 实现鼠标选中物品后的场景点击事件流程
    修改CursorManager修改EventHandler修改Player修改GridMapManager继续修改CursorManager继续修改EventHandler我们希望人物扔出东西的时候,不是直接在地面上生成一个物品,而是有一个扔的效果修改ItemManager修改InventoryManager继续修改GridMapMa......