软件测试—接口测试面试题及jmeter面试题

一,接口面试题

1.接口的作用 

实现前后端的交互,实现数据的传输

2.什么是接口测试

接口测试就是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑关系

3.接口测试必要性

1.可以发现很多在页面上操作发现不了的bug

2.检查系统的异常处理能力

3.检查系统的安全性,稳定性

4.前端随便变,接口测好了,后端不用变

4.接口测试的流程

1.需求评审,熟悉业务和需求

2.开发提供接口文档

3.编写接口测试用例

4.用例评审

5.提测后开始测试

6.测试完成--回归测试

7.提交测试报告

5.怎么测试接口

6.接口规范文档包括哪些内容

1.接口说明

2.调用url

3.请求方法

4.请求参数,参数类型,请求参数说明

5.返回参数说明

7.关于HTTP请求,GET方式和POST方式有什么区别呢?

1.提交数据的方式不同

GET: 请求的数据会附在URL之后

POST:把提交的数据放置在HTTP包的请求体<request-body>中。

2.传输数据的大小不同

1. GET:特定浏览器和服务器对URL的长度有限制,如IE对URL长度的限制是2 083Byte。其他浏览器,如FireFox,其限制取决于操作系统。因此,使用GET方式提交时,传输的数据就会受到URL长度的限制。

2.POST:此方式由于不是通过URL传值,理论上数据不受限制。但实际上,各个Web服务器会规定对使用POST方式提交的数据大小进行限制,Apache、IIS 6.0都有各自的配置。

3.安全性不同

POST方式比GET方式的安全性更高。

例如:通过GET方式提交数据,用户名和密码将以明文的形式出现在URL上,由于登录页面有可能被浏览器缓存,因此,其他人通过查看浏览器的历史记录,就可能知道你的账号和密码

8.接口状态码有哪些对应状态是什么?

Response 消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.

HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

1XX  提示信息 - 表示请求已被成功接收,继续处理

2XX  成功 - 表示请求已被成功接收,理解,接受

3XX  重定向 - 要完成请求必须进行更进一步的处理

4XX  客户端错误 -  请求有语法错误或请求无法实现

5XX  服务器端错误 -   服务器未能实现合法的请求

以下对常见状态代码和状态描述进行说明。

200 OK:客户端请求成功。

400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

401 Unauthorized:请求未经授权。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

404 Not Found:请求资源不存在,如输入了错误的URL。

500 Internal Server Error:服务器发生不可预期的错误。

503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

9.http和https协议的区别:

http是超文本传输协议:客户端与服务端的交互是明文传输的,超文本传输协议,端口是80

https是http+ssl结合的传输方式:客户端和服务端的交互是加密传输的,比较安全,一般需要安装证书,端口一般是443

10.cookie、session token的区别:

1.token是开发自定义的,session是http协议定义的标准

2.token不需要存储起来,不需要占用服务器的资源,session需要存储在服务器上,一般会占用服务器的资源

3.cookie和session的共同之处就是都是用来跟踪浏览器用户身份的会话方式

4.Token是可以跨平台的,(手机,电视,盒子),session不能跨域

Session属于服务器端

Cookie属于客户端储存

 cookie:

cookie是在HTTP协议下,服务器或脚本可以使用用户信息的一种方式。cookie是由web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户访问到服务器,都会带上该服务器的cookie信息。

一般cookie都是有有效期的,cookie只在浏览器上保存一段规定的时间,一旦超过规定得到时间,该cookie就会被系统清除。

session:

session将数据存储在服务器中,服务器会为每一个用户创建一条session,用户访问服务器的时候需要拿着session去表明自己的身份。

session的实现是基于cookie,session需要借助于cookie来存储sessionID。

11.什么样的项目适合做接口自动化

需求稳定,不会频繁变更的项目

研发和测试周期长,需要频繁的进行回归测试

需要在多平台上运行相同的测试场景

手工测试成本高

被测软件的开发较为规范,能够保障系统的可测性

12.工作中接触到那些端口你知道哪些端口

FTP服务的21端口,SSH是22端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口,https服务443端口 dns服务53   Tomcat服务是8080端口, orcale服务1521 mysql服务3306

13.在接口测试中关联是什么含义?

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

二,jmeter面试题

1.在项目中如何用jmeter进行接口测试?

1. 添加线程组:在 JMeter 中创建一个线程组(Thread Group),用于定义并发用户的数量、循环次数等。

  1. 添加 HTTP 请求:在线程组中添加一个 HTTP 请求(HTTP Request),用于发送登录请求。在请求中设置目标服务器的 URL、请求方法(POST、GET等)以及请求参数。
  2. 配置请求参数:在 HTTP 请求中设置登录接口需要的请求参数,例如用户名和密码。可以使用 JMeter 提供的参数化功能为不同的用户生成不同的请求参数。
  3. 添加断言:用于判断登录是否成功
  4. 添加监听器:为了收集响应结果和性能数据,可以在线程组下添加一个或多个监听器(Listener),如 Summary Report、View Results Tree 等。监听器会记录请求的响应时间、响应码、错误信息等。
  5. 添加正则提取器:用于获取登录成功后的返回的token,后续接口都需要使用到token

        6. 运行测试计划:保存测试计划,并点击 JMeter 工具栏中的 "运行" 按钮,开始运行接口测试。   JMeter 会按照设置的并发用户数和循环次数,发送登录请求并记录响应结果。

7. 查看测试结果:测试运行完成后,可以查看监听器中的测试结果。可以根据需要查看响应时间分布、错误率、吞吐量等指标,以评估接口性能和稳定性。

2.jmeter中如何设置断言?

右击请求---断言---响应断言---响应断言界面输入要检查比对的项,设置好断言后,执行接口测试如果是通过的,查看结果树不会有任何提示,如果断言失败,就会有红色报错。如果接口返回的数据是json数据,也可以添加json断言

3、jmeter中如何实现关联?

先从上一个接口中通过正则表达式提取器或jsonpath解析器截取下一个接口需要的参数值保存到变量,然后在下一个接口中通过${变量名}去获取

4、jmeter添加http请求默认值元件有什么作用?

添加并设置好后,相当于给所有的http请求取样器都设置了默认值,既不用填写取样器中的比如主机地址、端口、代理等,都可以使用http请求默认值设置的

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

  1. 配置元件---用户定义的变量元件可以设置全局变量
  2. 函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化
  3. 可以使用csv文件作为参数化,通过配置元件中的csv data set config元件进行设置即可

6,接口测试执行中比对数据库吗?

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

7.测试过程中常见的端口有哪些?

FTP服务的21端口,SSH是22端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口,https服务443端口 dns服务53   Tomcat服务是8080端口, orcale服务1521 mysql服务3306

8、解释下什么是JMeter?

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

9.说明JMeter的工作原理?

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

10,提到JMeter中处理器的类型是什么?

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

11,是否提到测试元件的执行顺序?

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

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

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

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

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

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

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

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

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

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

 JMeter中一些常用的断言是:

响应断言

持续时间断言

大小断言(Size Assertion)

XML断言

HTML断言

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

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

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

  ③不要使用功能模式;

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

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

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

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

18,列出几个JMeter监听器?

  一些JMeter监听器是:

集合报告

汇总报告

查看结果树

用表格查看结果

图形结果

BeanShell Listener

摘要报告等

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25,jmeter 如何管理cookie和session信息?

        •“线程组”->“添加”->“配置元件”->“HTTP cookie管理器”

26,正则表达式编写

语法:{头(。+?)尾}

问题1:(.+?) 与(.*?)  区别

(.+?)  匹配一个以上

(.*?)   匹配0个及以上,要取的值是空值的时候可以取到

27,简述实施软件性能测试的流程?

28,简述基准测试、压力测试、负载测试、并发测试

1、基准测试

  基准最简单的理解就是有基础的标准,这样能通过对比发现系统的不同的与变化。一般情况下,基准测试有以下几种应用场景。

  1)可以在指定的标准下通过基准测试建立一个性能基准,这样以后当系统的环境、参数发送变化之后,在进行一次相同标准下的测试,即可看出变化对性能的影响。例如,数据库的基准性能测试。

  2)系统进行基准测试可以在较早的阶段发现性能问题。例如,如果对BestTest论坛进行10个用户并发测试时,系统出现了死机现象,那么就没比较进行后续测试。

  3)某系统从来没有进行过任何性能测试,需要对该系统做一次性能评估作为后续开发调优的参考。这是基准测试常见的一种场景,也是大部分没有做过性能测试的公司最需要的。

  基准测试不难理解,但实践起来常常被误解。以对某个系统的数据搜索进行性能基准测试用例,这个系统的数据量会随着时间的增长而增长,所以必须频繁地进但行基准测试,这样子才能准确地把握数据量的增长对系统性能的影响。但是进行的基础测试又恰恰是在应用程序级别的,并不能客观地反应全局的性能。所以,比较好的做法是每次只修改一个地方,这样就能准确地判断出那个地方会对性能产生影响。

2、并发测试

  并发测试是值通过模拟多个用户并发访问同一个应用、存储过程或数据记录及其他并发操作,测试是否存在死锁、数据错误等故障。为了避免数据库或者函数方法在并发下的错误,需要专门针对每个模块进行并发测试。

  并发数如何确定?

  并发数 = PV/PVTime * 页面连接次数 * HTTP响应时间 * 因数/Web服务器数量。

  其中,PVTime是PV的统计时间,换算成秒,一天是86400s。页面连接次数包括外部的JS、CSS、图片等,一般为10。HTTP响应时间一般为1s或更少。因数一般为5。

  假设,BestTest官网每天有6万PV,其余参数保持默认,那么推算出来的并发数大致为35

  注意**:PV(page view)即页面浏览量。一个用户有可能创造十几个甚至更多的PV。它是目前判断网站访问流量最常见的计算方式,也是反映一个网站受欢迎程度的重要指标。

3、负载测试

  负载测试是值在一定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户的要求范围内,以此确定系统所能承受的最大用户数、最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率。

  负载测试强调的是在一定的环境下系统能够达到的峰值指标,大多数的性能测试都是负载测试。例如:在各大网站上看到的各种显卡测试,都是通过运行3DMark或者某种游戏得到的最终数据,通过这个数据来说明显卡的峰值处理能力,这就是负载测试的一种。

4、压力测试

  压力测试是指在一定的软件、硬件及网络环境下,模拟大量的虚拟用户数向服务器产生负载,使服务器的资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。

  与负载测试获得峰值性能数据不同,压力测试强调在极端情况下系统的稳定性,这个时候出来能力已经不重要了。

常见性能指标

响应时间,并发数,吞吐量,吞吐率,错误率,资源利用率(cpu,磁盘,内存,网络)

性能测试流程图

29.jmeter中怎么监控数据性能指标

在 JMeter 中,用于监控数据库性能的插件叫做 "JDBC Request"。这个插件可以让你执行数据库查询,以及记录和分析数据库请求的性能指标。你可以在 JMeter 的 Thread Group 中添加 JDBC Request Sampler,然后配置数据库连接信息和 SQL 查询语句来执行数据库操作。执行完查询后,你可以通过 JMeter 的监听器(如 Summary Report、Aggregate Report 等)来查看数据库性能指标,如响应时间、吞吐量、错误率等。

另外,如果你还希望更详细地监控数据库的性能指标,JMeter 还提供了 "JDBC Connection Configuration" 元件,它可以设置数据库连接池,以及指定收集 SQL 的执行时间、响应大小、响应时间等信息。通过使用这个元件,你可以更全面地监控和分析数据库的性能。

总结来说,在 JMeter 中,你可以使用 "JDBC Request" 插件来执行数据库操作,并通过监听器和 "JDBC Connection Configuration" 元件来监控数据库的性能指标。这些工具可以帮助你进行数据库性能测试和分析。

我只是把自己背的面试题整理出来分享给大家,不喜勿喷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值