精华内容
下载资源
问答
  • ## 软件测试接口面试题1 1. 请问你们公司是如何做接口测试的? 答: 接口测试实际跟一般测试不同就是测试用例的设计部分。 ①获取接口规范; ②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求...

    ## 软件测试之接口面试题1

    1. 请问你们公司是如何做接口测试的?

    • 答: 接口测试实际跟一般测试不同就是测试用例的设计部分。
      ①获取接口规范;
      ②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求);
      ③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还 有考虑参数有互斥或关联的情况);
      ④接口返回值各种验证(符合接口文档需求);
      ⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…);
      ⑥接口能并发执行吗、安全吗,性能满足要求吗;
      ⑦采用工具或者自写代码来验证;
      ⑧发现问题跟功能测试一样,该报 bug 报 bug,该跟踪状态的跟踪状态;

    2. 怎么设计接口测试用例?

    • 答: 通常,设计接口测试用例需要考虑以下几个方面:
      ①是否满足前提条件 有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token 逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例;
      ②是否携带默认值参数 正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值, 其他不填写,设计 1 条用例;
      ③业务规则、功能需求 这里根据时间情况,结合接口参数说明,可能需要设计 N 条正向用例和逆向用例;
      ④参数是否必填 逆向用例:针对每个必填参数,都设计 1 条参数值为空的逆向用例;
      ⑤参数之间是否存在关联 有些参数彼此之间存在相互制约的关系;
      ⑥参数数据类型限制 逆向用例:针对每个参数都设计 1 条参数值类型不符的逆向用例;
      ⑦参数数据类型自身的数据范围值限制 正向用例:针对所有参数,设计 1 条每个参数的参数值在数据范围内为最大值的正向用例;

    3. 你做接口测试,测什么

    • 答:可用性测试 根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:
      ①接口功能是否正确实现;
      ②返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
      ③参数值边界值、等价类测试; 错误和异常处理测试;
      ④输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
      ⑤输入错误的参数,接口能正确处理,并按预期响应;
      ⑥多输入、少输入参数,接口能正确处理,且按预期响应;
      ⑦错误传输数据格式(如 json 格式写成 form 格式)测试; 安全性测试,主要指传输数据的安全性:敏感数据(如密码、秘钥)等是否加密传输;
      ⑧返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
      ⑨接口是否对传入的数据做安全校验,如身份 ID 加 token 类似校验;
      ⑩接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);
      ⑪性能测试,如接口的响应时间、并发处理能力、压测处理情况:并发请求相同的接口(特别为 POST 请求),接口的处理情况(如插入了相同的记录导致 数据出错,引发系统故障);
      ⑫接口响应时长在用户可忍受的范围内;
      ⑬对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;

    4. 平常用什么工具测接口的?

    • 答:常用 http 协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、 jmeter 等。

    5. 没有接口文档,如果做接口测试?

    • 答:用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具 Fiddler、Charles 等)

    6. 接口测试中,依赖登录状态的接口如何测试?
    答:依赖登录状态的接口的本质上是在每次发送请求时需要带上 session 或者 cookie 才能 发送成功,在构建 POST 请求时添加必要的 session 或者 cookie

    7. 你平常做接口测试的过程中发现过哪些 bug?

    • 答:常规错误:接口没实现,没按约定返回结果,边界值处理出错等。 输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
    • 输入错误的参数、多输入、少输入参数,接口可能出现的错误;
    • 安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请 求拦截等;
    • 性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等;

    8. 当一个接口出现异常时候,你是如何分析异常的?
    答:先抓包,用 fiddler(charles)工具抓包,或者浏览器上 F12 调试工具;APP 上的话,那就 用 Fiddler 做代理,通过手机设置代理去看请求和返回报文; 查看后端日志,如 Linux 系统通过 xhell 连上服务器,查看接口日志,查看是否有报错信息 (命令:tail -f 日志文件);

    9. 如何分析一个 bug 是前端还是后端的?

    • 答:先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就 是前端发的数据不对; 请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题。
    展开全文
  • ...get和post有什么区别? 1.get参数是写url中,post写在body 2.get的参数大小有限制,post没有限制 ...根据接口文档,设计接口测试用例,根据返回状态码确定接口是否正常,查看返回结果,看返回接口数据是否正确。 如:用

    http和https有什么区别?
    1.http 端口 8080 https 是443
    2.https加密传输,http是明文
    3.https是有证书校验,http是没有证书校验
    4.https比http的安全性要高

    get和post有什么区别?
    1.get参数是写url中,post写在body
    2.get的参数大小有限制,post没有限制
    3.安全性post比get高

    你怎么做的接口测试?
    根据接口文档,设计接口测试用例,根据返回状态码确定接口是否正常,查看返回结果,看返回接口数据是否正确。
    如:用postman做接口测试
    1.选择请求方式
    2.设置url,添加请求头和请求体
    3.点击发送,查看返回报文是否正确

    有做过接口测试吗?列举项目中的操作接口
    有的,我们做接口测试使用的是jmeter,中途使用jemter的正则提取器对关联接口做一个关联设置。
    首先添加登录接口,将登录接口返回的token信息,用正则表达时提取,放在我们的订单查询查询接口 中,然后将订单查询的id用jmeter的正则表达式提取,放在在订单修改接口中。这样进行接口测试。
    体现你会jemter做接口测试,还会做上下游关联测试
    备注:token是登录后返回一个口令,其他接口,用这个口令可以直接执行。没有这个口令需要登录后 才能执行。面试官没问token是什么可以不用解释。

    测试流程:
    1.需求分析
    2.设计用例
    3.评审测试用例
    4执行测试用例
    5验证bug
    6归回测试
    7.编写测试报告和用户手册
    8.预发布测试
    9上线的验证

    在软件测试计划里面应该包含哪些内容呢?
    1)测试开始时间 & 测试结束时间(周期的长短一定是在测试计划里体现了,时间因素影响了后面所有因素)
    2)测试的内容(包含在本轮测试中,哪些功能模块需要测试,哪些需求已经明确实现,业务功能重要度的划分)
    3)测试的参与人员以及任务分工
    4)输出文档的规定以及存放(测试用例编写规则,测试用例的粒度,文档的存储位置和命名规则)
    5)采用的测试方法以及测试环境或者工具的准备工作
    6)风险和约束

    项目介绍融入相关功能业务规则的用例测试用例设计
    1.比如介绍电商中优惠卷30元才可以使用优惠卷
    2.手机号为11位数字
    3.邮箱为6到14位数字
    4.说一些项目具体业务规则说怎么设计对应的用例
    体现自己的设计用例的能力。所有功能一般都用 边界值、场景法、等价类进行测试的。

    测试中常见的bug,加入自己定位bug的方式在里面
    1.app中查询商品,商品名字多了符号,或者字符,商品名字多了一个$符号,比如 $蛋糕 使fiddler牛仔裤 后面使用手机代理fiddler抓包,查看了商品接口,后台接口返回的信息中多了一个.所以把bug提交 给了后台。
    2.点击下订单按钮,无任何反应。后面使用手机代理fiddler抓包,查看了下订单的接口,后台接口返 回的信息报500服务器内部信息错误。把bug提交给了后台.

    展开全文
  • 软件测试人员 面试题、面试经验 个人觉得重点的内容,会在标题或问题前面标记 * 号 一些知识我会加上自己的理解,和面试官预期的结果,各位读者就见仁见智吧 文章目录软件测试人员 面试题、面试经验1. 测试理论...

    软件测试人员 面试题、面试经验

    个人觉得重点的内容,会在标题或问题前面标记 * 号
    一些知识我会加上自己的理解,和面试官预期的结果,各位读者就见仁见智吧
    API 测试 与 Web UI 测试,与本人用的框架与经验有直接关系。所以问题与回答都不具备通用性,姑且列出相对通用性的问题作为参考吧。

    文章目录

    1. 测试理论

    理论部分内容是相对客观又较为主观的认知部分。所以每个人理解与概括的阶段名字会有一定的差异。所以你认知中的内容与我认知可能有所不同,欢迎补充和讨论。
    另外,这部分内容应该从自己的实际工作中去体会与总结,不应该死记硬背。

    软件生命周期?

    需求分析阶段、软件设计阶段、软件测试阶段、运行维护阶段

    * 软件测试的生命周期?(测试工作流程)

    广义:
    测试计划、测试需求分析、测试用例设计、测试用例执行、BUG提交

    实际工作中:
    需求分析、编写测试用例、评审测试用例、冒烟测试、系统测试、缺陷回归、(系统测试与缺陷回归 重复若干轮后)、验收测试、版本上线

    * 用例的基本要素?

    其实这个 8 要素是以前 Excel 时代写用例的产物。8 要素是说,这 8 个缺了一个就就不是一条完整的用例了。有一点要注意,“重要程度”属于 8 要素,“测试结果” 不属于 8要素。

    8 要素:
    用例编号、所属模块、用例标题、重要程度、前置条件、测试输入、操作步骤、预期结果

    实际工作中:
    用例编号、所属模块、用例标题、重要程度、前置条件、测试输入、操作步骤、预期结果、实际结果、作者、创建日期等

    * 缺陷的生命周期?有哪些状态?(缺陷流程)

    同缺陷管理平台如QC、禅道、Jira、Mantis 都有着不同的状态类型,并且也都支持自定义。加之近几年大家都提倡敏捷,缺陷的状态已经是“十里不同音,百里不同俗”了。所以这部分我只能描述一下我理解的典型缺陷状态了

    经典缺陷状态参考 此篇文章
    新建(New)、打开(Open) 、 指派(Assign)、 测试(Test)、确认(Verified)、延期(Deferred)、重新打开(Reopened)、重复(Duplicate)、拒绝(Rejected)、关闭(Closed)

    QC管理工具中的缺陷状态
    新建(New)、打开(Open)、固定(Fixed)、拒绝(Dejected)、暂缓(Deferred)、关闭(Closed)、重新打开(Reopened)

    这里我简单绘制了一张流程图,角色就不描述了,自己理解一下。
    在这里插入图片描述

    有一种认知是已关闭是最终状态,所以已拒绝暂缓 最终也会变成已关闭。这个见仁见智。
    还有一些人把已修复当做已关闭来使用、已关闭当成软删除来使用。这个就不太对了。

    缺陷的基本要素?

    基本要素是比较重要的内容,也是早期的产物。现在缺陷管理工具什么字段都能给你自动记录和选择。所有内容更多了。附件就有截图、录屏、日志等。

    基本要素:
    缺陷编号、缺陷状态、缺陷标题、重现步骤、预期结果、实际结果、严重程度、优先级

    实际工作中:
    缺陷编号、缺陷状态、缺陷标题、重现步骤、预期结果、实际结果、严重程度、优先级、缺陷类型、所属模块、提交人、提交时间、附件等

    * 请以 xx 功能为例设计一下测试用例

    建议从以下几个角度来回答,更全面与讨喜

    • 基于业务场景的测试用例
    • 基于元素的格式、长度、特性用例
    • 基于平台的特性的专项测试
    • 兼容性
    • 安全性
    • 补充这一功能常见的需求或隐性需求
    • 权限 & 未登录

    以社区发贴功能举例

    这里的元素格式这部分其实是很通用的,平时可以自己整理一份。比如 手机号、邮箱有特殊格式、文本过长是否会导致破板等等。

    我觉得比较难的就是常见功能与隐形需求了。因为面试过程中的问题可能不会把需求描述的很具体。所以这时候我们可以补充一些该功能常见的基本功能与一些隐性功能。

    在这里插入图片描述

    2. 网络知识 与 HTTP

    网络的7层协议/ 4层协议

    详情网络协议可以参考此篇文章

    7 层协议

    • 应用层
    • 表示层
    • 会话层
    • 传输层
    • 网络层
    • 数据链路层
    • 物理层

    7 层 与 4 层对照关系

    7 层 4 层 常用协议
    应用层
    表示层
    会话层
    应用层 HTTP/ FTP/ SMTP/ DNS
    传输层 传输层 TCP/ UDP
    网络层 网络层 IP
    数据链路层
    物理层
    链路层

    HTTP Code 301、302、304的区别

    300系是重定向

    • 301 Moved Permanently 永久移动
    • 302 Found 临时移动
    • 304 Not Modified 未修改。此时浏览器会读取缓存数据。

    HTTP Code 403、404、405的区别

    400系是请求出错

    • 403 Forbidden 拒绝执行。一般是权限不足
    • 404 Not Found 页面不存在。一般是URL地址错误
    • 405 Method Not Allowed 方法不被允许。比如 用 get 方式请求 post 接口

    HTTP Code 502、503、504的区别

    500系是服务器出错

    • 502 Bad Gateway 错误网关。可能应用服务出现问题,或者依赖服务出问题,例: sql 慢查询、大量并发请求。此时请求与后端已建立连接。
    • 503 Service Unavailable 无法服务。临时维护或过载,例如大量并发请求时,服务端可能返回一部分用户503无法服务,以保证另外一部分用户能继续使用。
    • 504 Gateway Timeout 网关超时。一般是配置出错或 Nginx 代理服务出现问题、或应用服务出现问题。此时请求与后端并未建立连接。

    3. API 测试

    常见的请求方法?

    • GET
    • POST
    • PUT
    • DELETE
    • OPTIONS

    * GET 与 POST 的区别?

    这是一道比较常见的面试问题,但这道题目我有自己的理解和看法…

    网上常见答案:

    • get 请求服务器资源,post 提交表单
    • post 请求数据量更大
    • get 不安全、post更安全。
    • get 可以被缓存、post不会被缓存

    这里的差异只有一个差异,就是参数在url地址栏中就是数据量小、不安全。而参数放在body中,就是数据量大、安全。而 get 可以被缓存,这只是浏览器的功能,不同浏览器之间也有差异。

    这里的区别都是基于 get 只能请求 url query 参数,post 只能请求 body 体的误区。其实get 也可以传递body体,只是一般后端不会这么接收。post 请求url query就更常见了。一般链路日志中的post接口就会用url query参数传递一个链路标识串。

    我和这几位同学的观点是一致的 移步1 移步2

    但我仍然建议你们按网上的答案来回答,只是加上“在平常工作中…”

    GET 和 POST 哪个更快?

    既然要对比某一属性,就要用控制变量法,既:
    相同网络、相同请求参数、相同后端逻辑等等,除了Method外其他全一样

    那么我实际跑下来100~10000次,有时get快,有时post快。我不敢说他们速度完全没区别,至少差异比程序运行&网络波动的误差还小。
    在这里插入图片描述
    甚至我自己瞎写一个协议

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/ping', methods=["GET", "POST", "HAHAHA"])
    def ping():
        return {'success': True}
    
    if __name__ == "__main__":
        app.run()
    

    也是可以成功请求并获取到数据的

    response = requests.request(method='HAHAHA', url='http://127.0.0.1:5000/ping')
    print(response.text)
    

    因为协议这个东西本就是约定俗成的一种格式,服务端收到的是一段包含协议格式,再进行解析。个人觉得 get 和 post没啥区别。区别是浏览器、web服务器、应用服务器、后端业务逻辑带来的。

    简单介绍一下你是如何做 API 测试的 [待更新]

    API 自动化如何做数据准备和传递数据?[无答案]

    目前项目中 API 用例数量是多少?多久维护一次?维护成本是多少?[无答案]

    4. Web UI测试

    本人常用的 Web UI 测试框架是 Cypress,比较小众。所以这一块就不写了,因为常见的 Selenium 框架并不适用。

    目前项目中 Web UI 用例数量是多少?多久维护一次?维护成本是多少?[无答案]

    如何切换页签? [无答案]

    如何定位iframe?[无答案]

    5. 性能测试(针对 JMeter)

    简单介绍一下你是如何做性能测试的 [待更新]

    一般用什么线程组?

    插件中的并发线程组(bmz - Concurrency Thread Group)
    可以设目标总线程数、总持续时间、步骤阶段数量
    在这里插入图片描述

    性能测试你会关注哪些指标?

    • 每秒活动线程数
    • 响应时间
    • 每秒事务处理个数(TPS)
    • 服务器资源使用情况

    性能测试的场景是什么?基准是什么?[待更]

    TPS 和 QPS的区别是什么?[待更]

    JMeter 如何传递参数 [待更]

    6. 测试框架(针对 Pytest)

    Pytest 如何让断言失败时不中断测试

    使用 assume 插件,可以让所有断言执行完成后才输出断言结果
    详细参考 这篇文章

    import pytest
     
    class Test(object):
     
        def test_01(self):
            """用例1"""
            print('执行test_01断言1')
            pytest.assume(0 == 1)
            print('执行test_01断言2')
            pytest.assume(1 == 2)
     
        def test_02(self):
            """用例2"""
            print('执行test_02断言1')
            pytest.assume(3 == 3)
            print('执行test_02断言2')
            pytest.assume(4 == 4)
     
    if __name__ == '__main__':
        pytest.main(['-s', 'test_C_01.py'])
    

    7. 数据库

    * Mysql 连接查询有哪些?

    mysql 有三种,left join、right join、inner join(简写 join);
    sqlserver 有额外 full join
    区别就不写了,参考 这篇

    select 
    * 
    from table_a a 
    join table_b b 
    on a.id = b.id  
    

    where 和 having 的区别?

    where 和 having都是条件语句
    不同的是,having是放在group by下方的,可以使用函数

    select 
    sex, count(1)
    from student
    where age >= 18 
    group by sex
    having count(1) > 0 
    

    如何去重?

    DISTINCT

    select 
    distinct name
    from student
    

    8. Linux

    * 常用 Shell 命令

    # 新建文件
    touch xxxx.txt
    
    # 新建文件夹
    mkdir xxxx
    
    # 查看文件
    cat xxxx.txt
    
    # 编辑文件
    vim xxxx.txt
    
    # 查看日志 -f 循环读取 -n 1000 指定最后多少行
    tail -f xxx.log
    tail -n 1000 xxx.log
    
    # 查询进程,aux 和 -ef区别请自行百度
    ps aux
    ps -ef
    ps aux
    
    # 杀死进程 pid是进程号,-9是强制杀死,-15是自行退出(也是不带参数的默认方式)
    kill -9 pid
    kill -15 pid
    
    # 管道 | ,就是把左侧的命令输出,作为右侧命令的输入。 文本搜索 grep
    ps aux | grep xxxx
    
    # 输出重定向 > ,就是把左边的命令输出内容写入文件,不显示在屏幕
    ps aux > 1.txt
    

    9. 其他

    印象深刻的 bug [无答案]

    线上问题处理流程 [无答案]

    * 在最近的一个项目中,你的主要工作内容是? [无答案]

    * 你有什么想问我的吗?

    参考这篇 知乎文章

    • 这个岗位是新开设的还是原岗位上的人离职了?
    • 关于这个岗位,您觉得最重要的工作内容是什么?
    • 您觉得,这份工作所需的能力,我还有哪些不具备?
      「您可能觉得我没有表现出 xxx 能力,其实……(补充一下)」

    一般面试刚开始都会有点紧张,可能回答的不太好、不全面。第三个问题如果面试官指出你的问题,可以适当做一些补充。如果真的能力有限,以后也有个自我提升的大概方向。也挺好的。

    自我介绍

    我目前在使用的范本是这样的,最早是没有业务方面的内容的。后来有一次面试。面试官问我,你的工作70%是系统测试,30%是自动化,为什么自我介绍里只着重讲那30%而没有讲那70%呢。我觉得很有道理,所以就加上了。XD

    你好,我叫xxxx。来自xxx。xxxx专业。我从事xxxx有xx年了。业务方面,过去几年主要从事xxxx行业,熟悉xx、xx、xx等相关业务测试。技术方面擅长的是xxxx与xxxx。xxxx年考取了xxxx证书。以上就是我的个人介绍,谢谢。

    展开全文
  • API测试是一种软件测试,涉及直接测试 API ,也是集成测试的一部分。用于检查 API 是否满足应用程序的功能,可靠性,性能和安全性方面的期望。在 API 测试中,我们主要关注软件架构的业务逻辑层。可以在包含多个 ...

    Time will tell.

    1、什么是 API?

    API 是Application Programming Interface首字母缩略词,即应用程序编程接口。 API 是一组用于构建软件应用程序的规程,协议和工具。API 充当软件应用程序之间的接口,并允许两个软件应用程序相互通信。 API 是一组软件功能,可以由其他软件执行。

    2、什么是 API 测试?

    API测试是一种软件测试,涉及直接测试 API ,也是集成测试的一部分。用于检查 API 是否满足应用程序的功能可靠性性能安全性方面的期望。在 API 测试中,我们主要关注软件架构的业务逻辑层。可以在包含多个 API 的任何软件系统上执行API测试

    3、常见的API测试类型有哪些?

    API测试常涉及以下实践:

    • 单元测试
    • 功能测试
    • 负载测试
    • 运行时/错误检测
    • 安全测试
    • UI测试
    • 互操作性和WS一致性测试
    • 渗透测试
    • 模糊测试

    4、列举API测试中使用的一些常用协议?

    thrift

    HTTP

    REST

    SOAP

    JMS

    UDDI

    dubbo

    5、API和Web服务之间的区别?

    Web服务:

    • 所有Web服务都是API
    • 所有Web服务都需要通过Web(HTTP)公开
    • Web服务只有三种使用方式:SOAP,REST和XML-RPC进行通信

    接口:

    • API有很多并不基于HTTP
    • API使用多种方式进行通信,例如C / C ++中的DLL文件,java中的Jar文件/ RMI,Linux内核API中的中断等

    6、什么是Soap?

    SOAP代表简单对象访问协议(Simple Object Access Protocol)。它是一种基于XML消息传递协议。虽说名字带了简单,但协议比较罗嗦,已经远没有后来居上的JSON使用广泛。

    7、什么是Rest API?

    REST 即 Representational State Transfer 。它是一组帮助开发人员执行请求和接收响应的函数。通过 REST API 中的 HTTP 协议进行交互。

    8、SOAP和REST的区别?

    SOAP:

    • 通过共享XML文档进行通信
    • 仅支持XML格式
    • 不支持缓存
    • SOAP比REST慢
    • SOAP就像自定义桌面应用程序,紧密连接到服务器
    • SOAP基于HTTP进行封装

    REST:

    • 基于网络的软件架构的服务架构和设计 - 支持不同的数据格式 - 支持缓存
    • 比SOAP更快 - REST客户端就像浏览器并使用应用程序必须适合的标准方法 - REST使用HTTP标头来保存元信息

    9、API常见测试有哪些?

    如下,在API上执行的一些常见测试:

    • 验证不同输入条件的返回。
    • 验证不同数据结构
    • 验证API是否触发其他事件或请求其他API
    • 在没有返回值时验证API的行为

    10、API测试有哪些优势?

    • 更快及更高的测试覆盖率。

    • API测试有助于我们降低测试成本。通过API测试,我们可以在GUI测试之前找到小错误。在GUI测试期间,这些小错误将变得更大。因此,在API测试中发现这些错误将对公司具有成本效益。

    • API测试与语言无关。

    • API测试在测试核心功能方面非常有用。我们可以在没有用户界面的情况下测试API。在GUI测试中,我们需要等到应用程序可用于测试核心功能。

    • API测试有助于我们降低风险。

    10、API测试中究竟需要验证哪些内容?

    • 数据准确性
    • HTTP或其他协议状态代码
    • 响应时间
    • API返回任何错误时的错误代码
    • 授权检查
    • 非功能测试,如性能测试,安全测试

    11、列举一些用于API测试的工具?

    用于API测试的一些工具如下:

    Curl
    httpie
    Requests: HTTP for Humans
    https://pypi.org/project/thrift/
    Postman
    Katalon Studio
    SoapUI
    Assertible
    Tricentis Tosca
    Apigee
    JMeter
    Rest-Assured
    Karate DSL
    API Fortress
    Parasoft
    HP QTP(UFT)
    vREST
    Airborne
    API Science
    APIary Inspector
    Citrus Framework
    Hippie-Swagger
    HttpMaster Express
    Mockbin
    Ping API
    Pyresttest
    Rest Console
    RoboHydra Server
    SOAP Sonar
    Unirest
    WebInject

    12、列出一些最常用的API文档模板?

    一些API文档模板,如下:

    Swagger
    FlatDoc
    RestDoc
    API blueprint
    Slate
    Miredot
    Web服务API规范。

    13、API测试和单元测试之间的区别?

    单元测试:

    • 多由开发团队进行 - 白盒测试 - 构建中的过程之前 - 涉及源代码 - 测试范围有限,只考虑基本功能

    API测试:

    • 多由QA团队进行
    • 多为黑盒测试
    • 在构建部署后进行
    • 大多不涉及源代码API测试
    • 测试范围很广

    14、API测试面临的主要挑战是什么?

    • 适当的参数及其组合
    • 正确分类参数
    • 顺序
    • 验证输出
    • 由于缺少GUI,提供输入值较困难

    15、执行API测试时我们面临的BUG类型是什么?

    • 压力,性能和安全问题
    • 功能重复或缺失
    • 可靠性问题
    • 消息不当
    • 不兼容的错误处理机制
    • 多线程问题
    • 合适的错误

    16、UI测试与API测试有何不同?

    UI(用户界面)测试是测试应用程序的图形界面部分。它的主要重点是测试应用程序的外观和感觉。

    API测试支持两个不同软件系统之间的通信。它的主要重点是应用程序的业务层。

    17、列举一些最常用的HTTP方法

    GET:从服务器检索数据

    POST:将数据添加到服务器中的现有文件或资源

    PUT:它允许您替换服务器中的现有文件或资源

    DELETE:它允许您从服务器中删除数据

    PATCH:用于对资源进行部分修改 选项:用于描述目标资源的通信选项

    HEAD:它要求响应与GET请求相同,但没有响应正文

    18、可以使用GET请求而不是PUT来创建资源吗?

    不能,GET请求仅允许只读权限。它使你可以从服务器检索数据,但不能创建资源。应使用PUT或POST方法来创建资源。

    19、PUT和POST方法有什么区别?

    POST用于在服务器上创建新对象,PUT请求用于在替换对象。

    当客户端将页面发送到服务器,然后服务器让客户端知道它放在何处时,应该使用POST。当客户端指定页面的位置时,应使用PUT。


    学习犹如逆水行舟,不进则退。

    推荐一个Python自动化资料学习裙:175317069。有已经整理好的各项面试题、测试学习资源,也有行业深潜多年的技术人分析讲解。
    
    展开全文
  • 软件测试工程师在面试的过程中,尤其是一些中级岗位的面试中,总会被问到:给你一个接口,如何进行测试?说实话,这个问题难么?会者不难,难者不会!大家的想法和态度肯定都不会相同。接下来,我们用一个面试中的...
  • 先自我介绍 请讲一下项目的业务? 你对业务的核心功能是怎么测的?[我对学员的要求最少是20个测试点,像...接口测试是用华为的工具还是自己写的?用的什么? 项目框架是什么? ui自动化用的什么 有遇到什么问题吗 接.
  • 软件测试常见面试题

    2021-01-26 08:20:16
    3、软件测试模型。 4、如何定位Bug? 5、版本发布流程、灰度发布方案。 测试用例相关 1、常见测试用例设计方法,举例说明。 2、测试用例优先级如何划分与定义。 3、测试用例评审如何做,以及评审带来的意义。 4、...
  • 接口测试面试题

    万次阅读 多人点赞 2019-06-01 11:45:36
    接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期 2.接口自动化测试的流程? 基本的接口功能自动化测试流程为:需求分析–>用例设计–>脚本开发–>测试执行–...
  • 软件测试高频面试题 1:什么是功能,性能,兼容 功能:能做什么? 性能:做事情的质量和速度 兼容:哪些地方可以使用 2:测试分为那几个阶段,每个阶段的意义 单元测试:小的方法,类测试。 测试技术:黑盒测试...
  • 接口测试-面试题

    千次阅读 多人点赞 2019-11-06 09:45:35
    :在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期 2.接口自动化测试的流程? 基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-->结果...
  • 面试官您好,我叫***,来自***,20年毕业于***,参加软件测试工作一年多了,在此期间我做过一些项目并且也积累了一些经验,能够独立的完成一个测试流程的工作,我之前工作主要做的是功能测试,web页面的UI测试,接口...
  • 下面我们进入正题—接口自动化测试面试题 一、get和post的区别? http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议 Get会把参数附在url之后,用?分割,&连接不同参数,Get获取...
  • 3、软件测试模型。 4、如何定位Bug? 5、版本发布流程、灰度发布方案。 测试用例相关 1、常见测试用例设计方法,举例说明。 2、测试用例优先级如何划分与定义。 3、测试用例评审如何做,以及评审带来的意义。 4、...
  • 1. 接口测试怎么做的? 原来我们的接口测试,开发这边会给我们一个接口文档,我们根据接口文档编写测试用例,考虑接口正常场景跟异常场景。测试用例编写完成后,我们会用python+request去执行,查看返回的结果是否...
  • 接口测试面试题整理

    2020-04-27 23:06:38
    接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期 2.接口自动化测试的流程? 基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-...
  • 四、接口测试常见面试题 五、Python以及自动化测试常见面试题(重点) 六、性能测试常见面试题 七、App常见面试题 八、面试题:总结 本文是笔者就职于某知名培训机构时内部绝密文件!绝密文件!绝密文件! 一...
  • 软件测试笔试面试题(附带答案)

    千次阅读 多人点赞 2019-05-20 22:54:00
    1.白盒测试是根据程序的____来设计测试用例,黑盒测试是根据软件的规格说明来设计测试用例。( D ) (A)内部流程 (B)内部接口 (C)内部数据 (D)内部逻辑 2.冒烟测试的主要目的是? ( B ) (A)确认可进行后续的正式...
  • 软件测试面试题

    2021-01-24 22:40:32
    全面掌握软件测试理论基础、文档编写、测试流程 1.测试分为哪几个阶段 2.谈谈你之前测试的项目流程,在每个阶段的输出有哪些 需求分析,探讨需求功能点,数据库表的设计,接口设计(需求文档) 主管编写测试计划,...
  • 软件测试面试题整理

    千次阅读 2013-05-07 21:49:39
    软件测试面试题整理 一般面试官都会问到你是怎样进入测试的,如何评判你是一个好的测试员,你可这样说, 主要工作:1确定测试范围,制定测试策略,写测试计划; 2熟悉业务流程; 3设计测试用例; 4 ...
  • 大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。...
  • 1、web端和APP端测试的相同点和不同点 相同点: 不管是APP测试,还是Web测试,在很多...再举个例子,在接口测试的问题上,Web测试与APP测试测试思路基本相同。 不同点: 由于Web与APP的测试环境不同,因此,在测试.

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 221
精华内容 88
关键字:

软件测试接口面试题