首页/ 学科题库/ gin/ 测试与性能优化专项测试
gin 模拟试卷

测试与性能优化专项测试

20 题 60 分钟 难度:★★

试卷习题(20 题)

参考答案在文末
判断题
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
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 核心源码执行流程专项测试 下一套 → 自定义中间件与洋葱模型进阶专项测试