这34道接口测试 & Jmeter面试题,你会吗?

这篇具有很好参考价值的文章主要介绍了这34道接口测试 & Jmeter面试题,你会吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接口测试 & Jmeter面试题

一、接口测试

1、接口测试流程

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

2、然后使用Postman或Jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:

a、首先新建一个线程组。

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

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

d、然后创建断言和查看结果树。

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

4、其实我们做接口的时候也碰到了蛮多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登录后才能取得token鉴权码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等。

2、请简述一下cookie、session以及token的区别:

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

(2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie

(3)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie

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

接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多!

接口测试设计测试用例的思路如下:

1、接口业务逻辑测试?(正例)

接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值

是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

2、模块接口测试?(反例)

模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。

模块接口测试的主要包括以下几个方面:?

1)鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。

2)其他参数异常:

a、必填项检查

b、参数的长度、类型、格式异常:

常规参数:(数字、字符串、日期)

参数长度:6-18位。或身份证、电话的长度。

参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。

日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。

3)错误码异常覆盖。

4)接口测试其他的关注点

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

数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致

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

当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。

所有列表页接口必须考虑排序值

所有功能都要考虑兼容旧版本

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

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

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

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

b、接口测试非常快速、UI自动化执行一个测试用例10S左右、接口测试用例执行的话,需要的时间是毫秒级的

7、之前用过抓包工具没有?如何使用的?

之前在项目中用过fiddler抓包工具进行HTTP协议请求的抓取

打开fiddler之后,默认浏览器配置了127.0.0.1 8888端口的代理,在fiddler设置好过滤策略后,打开需要进行抓包的网站进行操作,就可以进行抓包

8、json数据是什么,你平时如何解析json数据?

一种开发常用的数据报文格式,由键值对和数组两种格式构成。可以通过工具bejson网站等

9、postman参数化有哪几种方式?

内建变量、pre-scripts编写js脚本、批量运行时导入csv或json格式的文件

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

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

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

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

使用设置全局变量的代码把取出来的值保存到全局变量

在下一个接口中,使用{{全局变量}}代替要替换的静态值

二、Jmeter

1、解释什么是jmeter?

jmeter是一款java开源工具,用于性能负载测试。它旨在分析和衡量web应用程序和各种服务的性能和负载功能行为。

2.说明jmeter的工作原理?

jmeter就像一群将请求发送到目标服务器的用户一样。它收集来自目标服务器的响应以及其他统计数据,这些统计数据通过图形或表格显示应用程序或服务器的性能。

3.说明可以在哪里使用函数和变量?

变量和函数可以写入任何测试组件的任何字段。

4.提到jmeter中的正则表达式是什么?

根据模式(patterns),使用正则表达式搜索和操作文本。jmeter可用于解释在整个jmeter测试计划中使用的正则表达式或模式的形式。

5.解释什么是采样器(Samplers)和线程组(Thread group)?

线程组:对于任何测试计划,线程组元件都是JMeter的开始部分。这是JMeter的重要元件,你可以在其中设置多个用户和时间来加载线程组中给出的所有用户。

  采样器:采样器生成一个或多个采样结果;这些采样结果具有许多属性,例如经过时间、数据大小等。采样器允许JMeter通过采样器将特定类型的请求发送到服务器,线程组决定需要发出的请求类型。一些有用的采样器包括HTTP请求、FTP请求、JDBC请求等等。

6、使用JMeter构建的测试计划是否依赖于操作系统?

通常,测试计划以XML格式保存,因此与任何特定的操作系统都没有关系。它可以在JMeter可以运行的任何操作系统上运行。

7、提到JMeter中处理器的类型是什么?

JMeter中的处理器类型为:①预处理器;②后处理器。

8、解释什么是预置处理器元件?列出一些预处理器元件?

预置处理器是在采样器执行之前发生的事情。为了在执行采样请求之前对其进行配置,或者用于更新未从响应文本中提取的变量,需要使用预处理器元件。

  一些预处理器元件是:

- HTTP URL重写修饰符

- HTTP用户参数修饰符

- HTML链接解析器

- BeanShell PreProcessor

9、是否提到测试元件的执行顺序?

测试计划元件的执行顺序为:

  配置元件 -> 前置处理器 -> 计时器 -> 取样器 -> 后置处理器 -> 断言 -> 监听器

10、正则表达式中的“包含”和“匹配”表示什么?

在正则表达式中,contains表示正则表达式与目标的至少一部分匹配。匹配表示正则表达式匹配整个目标。如“alphabet”与“al.*t”匹配。

11、解释什么是配置元件?

配置元件与采样器并行工作。要设置默认值和变量以供采样器以后使用,可以使用配置元件。在合并范围的开始,将先处理这些元件,然后再处理同一合并范围中的任何采样器。

12、说明JMeter中的计时器是什么,计时器的类型是什么?

默认情况下,JMeter线程将连续发送请求而不会暂停。为了在请求之间暂停,使用了计时器。使用的一些计时器包括恒定计时器,高斯随机计时器,同步计时器,均匀随机计时器等。

13、解释什么是测试片段?

测试片段也是一种元件,例如“线程组”元件。唯一的区别是,除非模块控制器或包含控制器引用了测试片段,否则不会实现测试片段。

14、解释什么是JMeter中的断言?断言的类型有哪些?

断言有助于验证被测服务器是否返回了预期结果。

JMeter中一些常用的断言是:

- 响应断言

- 持续时间断言

- 大小断言(Size Assertion)

- XML断言

- HTML断言

15、说明如何减少JMeter中的资源需求?

①使用非GUI模式执行测试,如 jmeter –n –t test.jmx –l test.jtl

②在加载期间,测试不使用“查看结果树”或“查看表中的结果”监听器,仅在脚本编写阶段使用它们;

③不要使用功能模式;

④与其使用大量相似的采样器,不如在循环中使用相同的采样器,并使用变量来改变采样;

16、解释如何在JMeter中执行尖峰测试(Spike testing)?

通过同步,可以实现计时器JMeter尖峰测试。同步计时器将阻塞线程,直到阻塞了特定数量的线程,然后将它们全部释放,从而产生了巨大的瞬时负载。

  尖峰测试 也可以称为冲击测试,反复冲击服务器。指的是在某一瞬间或者多个频次下用户数和压力陡然增加的场景。

17、解释如何在JMeter中捕获身份验证窗口的脚本?

通常,可以通过录制来捕获脚本:

  首先,必须在Testplan(测试计划)中使用 Threadgroup,然后在 Workbench(工作台) 中使用HTTP代理服务器;

  之后,在“全局设置”框中设置端口号(如8911),然后在 IE高级选项>连接>局域网设置中 开启 代理设置,并将地址修改为localhost,端口改为8911。

然后,HTTP代理服务器中选择 目标控制器 Testplan>Threadgroup,然后启动HTTP代理服务器并运行应用进行登录。

18 列出几个JMeter监听器?

一些JMeter监听器是:集合报告、汇总报告、查看结果树、用表格查看结果、图形结果、BeanShell Listener、摘要报告等

19、什么是分布式负载测试?如何实现?

分布式负载测试是整个系统可以用来模拟大量用户负载的过程。通过使用主从配置,JMeter可以进行分布式负载测试。

20、在JMeter中是否有必要显式调用嵌入式资源?

你可以消除所有嵌入式资源的显式调用。请求底部有一个复选框,显示“检索嵌入式资源(retrieve embedded resources.)”。它会捕获所有CSS、JPG等。这是在Web应用中查找资源和断开链接的绝妙方法。

21、解释计时器(Timer)在JMeter中的作用是什么?

在计时器的帮助下,JMeter可以延迟线程发出的每个请求之间的时间。它可以解决服务器的过载问题。

22、解释什么是后置处理器?

要在发出请求后执行任何操作,则使用后处理器。例如,如果JMeter向Web服务器发送HTTP请求,并且如果你希望JMeter在Web服务器显示错误时停止发送请求,那么你将使用后处理器执行此操作。

23、JMeter为性能测试提供什么好处?

JMeter提供性能测试方面的优势,例如:

  用于测试静态资源和动态资源的性能;

  可用于测试网站最大并发用户数,从而分析定位网站瓶颈;

  提供了性能报告的图形化分析;

24、jmeter参数化的方式有哪几种可以实现?

配置元件—用户定义的变量元件可以设置全局变量

函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化

可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可

2000多道测试相关大厂面试题答案在下方小卡片文章来源地址https://www.toymoban.com/news/detail-413220.html

到了这里,关于这34道接口测试 & Jmeter面试题,你会吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 压力测试+接口测试(工具jmeter),软件测试 400道面试题通关宝典助你进大厂

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月26日
    浏览(66)
  • 使用 Hasura 和 PostgreSQL 构建后端技巧你会吗

    后端开发通常需要编写多行代码来处理 CRUD、授权和业务逻辑。所有这些代码都需要在项目的整个生命周期内进行测试、调试和维护。这需要开发人员可以用来开发新功能的大量时间。在本文中,您将了解 Hasura 和 PostgreSQL 如何帮助您加快应用程序开发并以最少的工作快速启动

    2024年02月05日
    浏览(36)
  • 【HashMap】| 深度剥析Java SE 源码合集Ⅱ | 你会吗?

    HashMap 是 Map 接口的接口实现类,它采用哈希算法实现,是 Map 接口最常用的实现类。 由于底层采用了哈希表存储数据,所以要求键不能重复,如果发生重复,新的值会替换旧的值。 HashMap 在 查找、删除、修改方面都有非常高的效率 。 HashMap 底层实现采用了哈希表,既集合了

    2024年01月22日
    浏览(38)
  • 手机没电用日语怎么说?你会吗?柯桥常用日语学习

    手机没电在日语里可以表达为: 1. スマホの電池が切れた。 直接使用“電池が切れる”来表示电池没有电了。 2. スマホのバッテリーが空に15857575376なった。 “バッテリーが空になる”也是表示电量耗尽的常用表达。 3. 充電が必要だ。 “充電が必要”意思是需要充电。 4.

    2024年02月06日
    浏览(41)
  • 序员工作1年,每天上班清闲,但却焦虑万分,若是你,你会吗?

    有个学弟在后台留言 他谈到了自己去年毕业的 因为在大学里边有一些校企合作 所以呢他也是花了钱 然后去培训了有半年 去年毕业之后到现在工作有一年了 那目前的薪资是8,000块钱 虽然说相较于其他同学呢 这个薪资呢还算可以 但是呢 自己每天现在就处于一种非常 压抑的那

    2024年02月02日
    浏览(40)
  • 【测试】Jmeter+Docker试题及答案

    Jmeter模块 不定项选择 1、Ramp-up period(seconds)代表在多长时间内把线程全部启动,如果线程数为10,而Ramp-up period设置为15,则每个线程的间隔时间为(B) 2、对于每个HTTP请求,都可以通过( )查看HTTP请求和HTTP响应(A) 3、对应一个测试场景结构如下:线程数为2-》循环控制器

    2024年01月20日
    浏览(39)
  • postman-循环调用测试接口_postman循环调用接口,你会的还只有初级工程师的技术吗

    此篇文章产生的背景是想针对接口做流控验证,检查流控是否奏效,便发现postman也能一次操作来循环调用接口,减少了一些开发测试工作,下面就看一下操作流程 目录 postman简单介绍 前置查看 postman版本 我的接口数据 具体操作步骤 1. 新建接口集 2. 选择接口集进行循环操作

    2024年04月23日
    浏览(48)
  • jmeter做接口压力测试_jmeter接口性能测试

     jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linu

    2024年02月07日
    浏览(74)
  • 接口测试常见面试题(含答案)

    目录 1.http协议和https的区别?     2. 常见的post提交数据的方式有哪些?  3. 常见的请求头以及它们的作用是什么?  4. get请求和post的区别? 5. 接口请求中常用的返回状态码  6. cookie,session,token有什么相同点,不同点?    7. 你们公司是如何做接口测试的?(包括︰接口测

    2024年02月13日
    浏览(44)
  • 【接口测试】JMeter测试WebSocket接口

    目录 一、WebSocket简介 二、JMeter测试WebSocket接口 三、WebSocket和Socket的区别 最近老被问到WebSocket,突然想到以前大学时上Java课的时候,老师教我们socket连接,一个同学电脑做客户端,一个同学电脑做服务端,当双方消息发送成功,第一次感觉到代码的奇妙~ 毕竟抄代码都不利索

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包