全部学科
Python全栈
python
NodeJS全栈
nodejs

测试与性能优化专项测试

20 题 60 分钟 难度:★★
💡 参考答案在文末
判断题
1

基准测试中的b.N是由Go测试框架自动调整的,框架会根据测试运行时间动态增加或减少迭代次数,以获得稳定的性能数据。

A

B

2

在生产环境中开启pprof端点可能带来安全风险,应该限制访问权限或仅在需要时临时开启。

A

B

3

pprof的goroutine profile可以显示当前所有goroutine的调用栈,帮助定位goroutine泄漏问题。

A

B

4

Go语言单元测试文件必须以_test.go为后缀,且测试函数必须以Test开头。

A

B

单选题
5

Go语言基准测试函数必须以哪个关键字开头,并且参数类型是什么?

A

Test开头,参数为*testing.T

B

Benchmark开头,参数为*testing.B

C

Performance开头,参数为*testing.P

D

Measure开头,参数为*testing.M

6

使用go tool pprof分析CPU profile时,top命令按什么指标排序显示函数?

A

函数调用次数

B

函数自身执行时间(不包括子函数调用)

C

函数总执行时间(包括子函数调用)

D

内存分配量

7

在基准测试中,b.ResetTimer()的作用是什么?

A

重置测试失败的计数

B

清除计时器,跳过初始化阶段的时间统计

C

重置内存统计计数器

D

设置基准测试的开始时间

8

以下哪个工具是Go语言内置的压力测试工具,常用于HTTP接口压测?

A

Apache Bench (ab)

B

wrk

C

hey

D

JMeter

9

在Gin单元测试中,如何正确模拟带有请求体的POST请求?

A

使用http.NewRequest("POST", url, bytes.NewBuffer(jsonData))

B

直接设置gin.Context的Body属性

C

使用c.Request.Body = bytes.NewReader(jsonData)

D

在请求头中设置Content-Type即可

10

在Gin框架中进行单元测试时,最常用的测试请求方法是使用哪种方式创建HTTP请求?

A

直接调用路由函数

B

使用httptest.NewRecorder和httptest.NewRequest

C

使用curl命令发送请求

D

使用浏览器直接访问接口

11

在Gin应用中启用pprof性能分析,最简单的方式是导入哪个包?

A

import "net/http/pprof"

B

import "github.com/gin-contrib/pprof"

C

import "runtime/pprof"

D

以上都可以,但方式不同

12

访问pprof的/debug/pprof/profile端点会生成什么类型的性能分析数据?

A

内存分配分析

B

CPU使用分析

C

堆内存分析

D

goroutine分析

多选题
13

以下哪些是pprof支持的性能分析可视化方式?

A

命令行交互模式使用top、list、web命令

B

生成火焰图(Flame Graph)

C

启动Web界面通过浏览器查看

D

导出为PDF报告

14

pprof的heap分析可以提供哪些内存相关信息?

A

当前存活对象的内存分配

B

内存分配的历史累计数据

C

GC统计信息

D

内存泄漏的对象来源

15

以下哪些是Gin单元测试中常用的断言方式?

A

使用testify/assert包的Equal、JSONEq等方法

B

使用标准库的t.Errorf手动编写断言

C

使用resp.Body.String()获取响应体后进行字符串匹配

D

直接比较HTTP状态码是否等于预期值

16

运行基准测试时,-benchmem参数可以显示哪些信息?

A

每次操作的内存分配量

B

每次操作的内存分配次数

C

堆内存使用峰值

D

GC暂停时间

填空题
17

对Gin路由处理函数进行基准测试时,应使用____________创建响应记录器,在循环内使用____________跳过初始化时间后,执行b.N次请求。

18

在Gin单元测试中,使用httptest包时,需要调用router的____________方法来执行请求,该方法接收两个参数:http.ResponseWriter____________

19

使用curl采集30秒的CPU profile数据,命令为:curl http://localhost:8080/debug/pprof/profile?____________ > cpu.prof,然后使用____________命令进行分析。

20

分析heap profile时,查看当前存活内存使用____________命令,查看累计分配内存使用____________命令。

参考答案
1.正确 2.正确 3.正确 4.正确 5.B 6.C 7.B 8.C 9.A 10.B 11.D 12.B 13.A;B;C 14.A;B;C;D 15.A;B;C;D 16.A;B 17.httptest.NewRecorder;b.ResetTimer 18.ServeHTTP;http.Request 19.seconds=30;go tool pprof 20.top -inuse_space;top -alloc_space
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 核心源码执行流程专项测试
下一套试卷 → 自定义中间件与洋葱模型进阶专项测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码