2025软件测试面试题以及参考答案

1. 选个熟悉的项目1分钟介绍一下

好的。我最近两年主要负责学习机项目的测试工作。这是一款集成了丰富教育资源的智能硬件产品,基于定制化的安卓系统,面向K12阶段的学生和家长。

我的核心职责是保障学习机端App应用后端服务的质量。具体来说,在App端,我使用 Python + Appium 搭建了UI自动化测试框架,覆盖了用户登录、课程学习、家长管控等核心功能。在后端,我使用 Python + Pytest + Requests 进行了接口自动化测试,并使用 JMeter 对关键的业务接口(如内容推荐、学习报告生成等)进行性能压测。

通过我们的工作,我们将核心功能的回归测试效率提升了约80%,并成功保障了多个系统版本和内容更新的稳定上线。

2. 压测用的是JMeter还是Grafana? 是针对单个接口压测还是整个项目批量的接口做压测?

在性能测试中,我们使用 JMeter 作为压力发起工具,用 Grafana 配合Prometheus作为性能监控和数据可视化平台。JMeter负责模拟学生用户请求,而Grafana则实时展示服务器的CPU、内存、数据库连接数等关键指标。

我们的压测策略是两者结合:

单个接口压测: 在开发阶段,对于一些核心且高频调用的接口,比如‘获取课程列表’、‘同步学习进度’等,我们会进行独立的基准测试,确保其性能达标。
场景化压测: 在版本发布前,我们会模拟学生的典型使用路径,比如‘登录 -> 进入学习空间 -> 选择一门课程 -> 开始学习’,将这个流程中的多个接口串联起来,进行场景化的压测,这样更能反映真实用户场景下系统的整体性能表现。

3. 单接口压测时怎么写jmeter脚本, 流程大概是怎样的?

以测试‘获取课程列表’接口为例,我的JMeter脚本流程是这样的:

添加线程组: 设置并发用户数,比如模拟100个学生同时请求。
前置登录: 由于获取课程列表需要用户登录,我会先添加一个‘登录’接口的HTTP请求。
提取Token: 使用 JSON提取器 从登录接口的响应中,提取出用于身份验证的token
添加HTTP信息头管理器: 将提取到的token设置到请求头中,格式为 Authorization: Bearer ${token}
添加‘获取课程列表’的HTTP请求: 这是核心的压测目标。我会将学生的年级、学科等参数通过 CSV数据文件设置 进行参数化,模拟不同学生查询不同课程。
添加断言: 添加一个响应断言,检查响应码是否为200,并检查响应体中是否包含关键字段如courseList,确保返回数据正确。
添加监听器: 使用 聚合报告 来收集和分析吞吐量、平均响应时间、错误率等性能数据。

4. JMeter参数传递是怎么传递的?

在我们的学习机项目中,参数传递主要有几种方式:

接口间关联(动态参数): 这是最常用的。比如,先调用登录接口,然后用JSON提取器抓取响应中的tokenstudentId,再将这些变量传递给后续的“获取学习报告”接口。
外部数据文件(静态参数): 对于大量的测试账号和密码,或者课程搜索的关键词,我们会把它们存放在 CSV文件 中,通过JMeter的CSV数据文件设置元件来读取,实现参数化。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容