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