杂记

一、物联网自动化测试岗位知识要点

一、岗位职责

1.自动化测试框架开发 设计并维护适用于嵌入式设备、边缘计算节点及云端服务的自动比测试框架。针对BioCV算法(计算机视觉、生物识别)与空间计算逻辑,编写高精度的自动化测试用例。

2.持续集成与质量门禁 将自动化测试脚本集成到CI/CD流水线(如Jenkins,GitLabCI)中,设置质量门禁,确代码合入前核心功能与物联网通信不受影响。

3.缺陷分析与质量闭环 精准定位缺陷根源,推动开发团队修复,并沉淀测试用例以完善回回归测试库,驱动产品质量持续进化。

4.技术指导与支持 指导初级工程师,协助进行技能培训;在项目内进行技术分享,沉淀解决方案,提升团队整体技术能力。 5.文档的形成和维护 负责相关技术、功能文档的撰写与资料的标准化。

二、任职资格

1、教育背景: 计算机、通信工程、自动化、物联网工程、电子信息等相关专业,本科及以上学历。

2、工作经验: 3年以上软件/嵌入式自动化测试工作经验者优先; 具有物联网(loT)、安防、智能硬件或Al图像识别领域测试经验者优先

3、技能要求: 编程语言:精通至少一种编程语言(Python优先,或Java/Go),具备独立编写自动化脚本及测试工具的能力;

4、物联网协议: 理解物联网通信体系,熟悉MQTT、COAP、HTTPP/RESTful协议,了解Modbus、BACnet等工业/楼宇自动 化协议者加分;

5、接口与Ul自动化: 熟练使用接口测试工具(Postman,JMeter)及自动化框架(Selenium,Appium);熟悉嵌式设备或边缘计算节点的接口测试方法;

6、测试框架与工具: 熟悉pytest,TestNG, Robot Framework等自动幼化测试框架;了解性能测试工具(如JMeter,LoadRunne 或安全测试工具者优先。

7、 数据库与操作系统: 熟悉MySQL/Redis等数据库操作;熟悉Linux常用命令,能进行基本的日志分析与环境部署;

8、Al基础认知: 对计算机视觉(CV)、生物识别技术有基础了解,知道如何验证算法的准确率(如误识率、拒真率)与实时性。

  • 自我介绍:

    • 你好,面试官,我叫XXX,目前有4年的测试经验,曾任职过测试组长和自动化测试,

    • 在上一份工作中,主导过多个项目的全流程测试,在技术侧重上,我比较擅长功能、接口和自动化测试,展开来说的话,就先抛开常规测试来说,还在测试小组中曾主导过AI辅助测试提效的落地、以及开发过一些测试脚本工具给团队去使用。

    • 其中比较明显的成果有,我主导的Starverse项目里面的回归测试效率提升了35%以上,负责的核心模块上线后做到了零P0事故,同时我也沉淀了一些团队文档,方便大家去复用,以上便是我的个人介绍了, 有 没有介绍到的地方欢迎面试官提问!

  • Mqtt协议和Coap协议的区别:Mqtt是一种轻量级的消息传输协议,它基于订阅/发布模式,是专门为低带宽、高延迟、不可靠的网络环境设计的,它支持多种QOS等级,确保消息的可靠性;Coap协议是一种专门为受限节点和网络简单而设计的协议,适用于资源受限的设备,比如像传感器这种的嵌入式设备,Coap协议是基于REST架构,类似轻量级的HTTP协议。从网络传输上来讲,mqtt采用的是tcp协议,coap采用的是udp协议。当设备资源受限时,会考虑使用coap协议,在需要消息的可靠传输,就会考虑mqtt协议了。

  • Mqtt测试点理解:

    • 连接测试:大量设备同时连接服务端,服务端是否能够扛住?

    • Topic测试:设备a发布主题,订阅b能接收到吗?通配符的匹配规则是否正确?(比如 device/+/temp 能否匹配 device/room1/temp)

    • Qos测试:Qos1或Qos2消息在掉线时重连是否重复推送?

    • 遗嘱消息(Will Message):设备异常断开,其他订阅者能否接收到“设备下线”的遗嘱?

    • 保留消息(Retained Message):新订阅者上线后,能否立即收到最后一条保留消息?

  • Modbus协议:是一种主从式串行通信协议,工业互联网很常用,核心是主站通过功能码读写从站的寄存器或线圈,此外,Modbus协议规定必须有主机主动向从机发起请求,从机响应请求,从机不可主动向主机发起请求。

  • BACnet协议:我对BACnet的名字有印象,知道它是楼宇自控的常用协议,但目前还没深入实践。不过我有快速学习协议的经验(比如之前学Modbus/HTTP),如果能入职,我可以在两周内掌握BACnet的测试要点,并产出第一份测试用例。

  • Jmeter:测试计划-线程组-HTTP请求-HTTP信息头管理器-查看结果树

  • Postman:jmeter和postman区别 1.组织方式的不同,jmeter的组织方式相对比较扁平,它没有工作空间的概念,直接就是测试计划。而postman的组织方式比较轻量型,主要针对单个http请求。 2.支持的接口类型与测试类型。像jmeter的话会更加强大,它可以支持Rest,Soap等等,不支持的话也可以去做扩展,可以测功能、性能。postman主要测试Rest接口,主要是测接口的功能。 3.自定义变量以及变量的作用域。两个工具都可以去设定全局以及局部。 4.流程控制方面,jmeter可以由Switch控制器等一系列的控制器,以及Beanshell的脚本来实现流程控制,postman的话主要是通过JavaScript脚本来进行控制,然后像这个结果的解析,以及断言脚本扩展能例方面也有一些区别

  • Jenkins:

    • 持续集成/持续交付 自动发布部署软件的系统。编排自动发布任务。下载代码-编译代码-远程部署程序-配置任务自动触发

    • 持续集成:指开发人员频繁地将代码集成到主干(如每天多次),每次集成都会通过自动化的构建和测试来验证,从而快速发现错误

    • 持续交付:是持续集成的延伸,指代码通过集成测试后,可以自动、安全、快速地部署到测试、预发布甚至生产环境

    • Jenkins执行顺序

      • 从Git上拉取最新代码

      • 编译打包应用程序

      • 运行各种测试

      • 将应用部署到服务器

      • 发送邮件通知结果/生产测试报告

    • 为什么做自动化测试?程序员改动代码时,改动a模块的代码,结果影响到b模块的功能时,自动化测试就起到一个安全网的作用,进行回归测试时避免出现这种情况,另外手机的兼容性测试,往往需要一个功能测试很多次,自动化测试往往更节省人力,可以让人有更多的时间去做探索性测试,也避免手动执行测试时可能发送纰漏的问题,现在很多开发用ai写代码 ,开发效率是提升了,但是代码质量可能下降了,很多压力给到测试,作为测试,也要想办法提效,加入ai辅助

    • 自动化测试的稳定性=环境的可控性 + 代码的容错性 + 结果的直观性

      • 环境的可控性

        • 测试数据隔离

        • 外部依赖使用mock

        • 环境固定

      • 代码的容错性

        • 显式等待

        • pytest-repeat 重试机制

        • 定位元素优先使用id或者name

        • 使用page object模式,减少修改定位值的位置

      • 结果的直观性

        • 使用log打印日志

        • 执行步骤截图保存

评论