腾蛇是什么意思| s牌运动鞋是什么牌子| evian是什么品牌| 孕妇为什么要左侧睡不能右侧睡| 兔儿爷是什么意思| 不适随诊是什么意思| 什么叫中成药| snoopy是什么意思| 湿疣是什么病| 胃炎胃溃疡吃什么药| 木姜子什么味道| 榴莲什么时间段吃最好| 总免疫球蛋白e是什么| 2月份生日是什么星座| 姨妈有血块是什么原因| 老年人尿血是什么原因| 吃什么除体内湿气最快| 画蛇添足的故事告诉我们什么道理| 促狭一笑是什么意思| 64年属什么生肖| 月经期间喝什么汤好| 腹膜后是什么位置| 少字五行属什么| 晚八点是什么时辰| 菜粥里面放什么菜最好| 交界性心律是什么意思| 剥皮实草是什么意思| 腐竹是什么| 斯凯奇鞋是什么档次| 膝关节疼痛吃什么药好| 左手小指和无名指发麻是什么原因| 喝什么能变白| 吃了发芽的土豆会有什么症状| 千什么一发| 11.20是什么星座| 运动后恶心想吐是什么原因| 便溏吃什么药| 正剧是什么意思| 小孩过敏性咳嗽吃什么药| 为什么近视| nike是什么意思| 大便黄绿色是什么原因| fdp偏高是什么原因| 血糖高吃什么水果好能降糖| 白衣天使是什么意思| 听吧新征程号角吹响是什么歌| 牛剖层皮革是什么意思| gary是什么意思| 受精卵着床失败有什么症状| 肝低密度灶是什么意思| 角头是什么意思| 血虚吃什么食物可以补| 奶油是什么做的| 喝杨梅酒对身体有什么好处| 两岁宝宝拉肚子吃什么药| kcal是什么单位| 六月初三是什么星座| 瞽叟是什么意思| 03属什么| 看睾丸去医院挂什么科| 手指倒刺是什么原因| 膈应什么意思| 上面一个山下面一个今读什么| 口腔溃疡能吃什么| 梦见火是什么意思| 十年什么婚| 河虾最爱吃什么食物| 眉心长痘痘什么原因| 下焦不通吃什么中成药| 鹿字五行属什么| 中元节是什么意思| 什么书在书店里买不到| 眼皮肿挂什么科| 头发定型用什么好| 肺胃热盛吃什么中成药| 床上什么虫子夜间咬人| 水代表什么| 新生儿ad滴剂什么时候吃最好| 耋是什么意思| 动物的脖子有什么作用| york是什么牌子| 炖肉放什么容易烂| 刚怀孕有什么特征| 耻骨疼是什么原因| 孕妇吸二手烟对胎儿有什么影响| 阴毛是什么| 芊芊学子是什么意思| 长疱疹是什么原因| 膀胱炎尿道炎吃什么药| 售罄是什么意思| 突然暴瘦是什么原因| 一本万利是什么生肖| 弓形虫是什么| 体检前需要注意什么| 最多笔画的汉字是什么| 白质脱髓鞘是什么病| 鱼豆腐是用什么做的| 医生五行属什么| 检查胸部挂什么科| 朝三暮四是什么生肖| 吃完饭就想睡觉是什么原因| 小狗感冒了吃什么药| 什么的樱桃| 高度鳞状上皮内病变是什么意思| 见干见湿是什么意思| 婴儿哭久了有什么危害| 脚上长痣代表什么| 河南是什么气候| 什么是条件兵| 杨玉环是什么星座| 墨染是什么意思| 老公护着家人说明什么| 水乳是什么| 硒酵母胶囊对甲状腺的作用是什么| 星星为什么会眨眼| 什么茶叶好| 拉拉裤和纸尿裤有什么区别| 安宫牛黄丸主治什么病| 儿童受凉咳嗽吃什么药| 2016年属什么| 大便长期不成形是什么原因| 雌二醇过高是什么原因| 神经痛吃什么药| 吃什么东西补血最快最有效| 压力是什么| 痛经喝什么能缓解| 杭州五行属什么| 707是什么意思| 土和什么相生| 偷鸡不成蚀把米什么意思| 生理期量少是什么原因| 亦如是什么意思| 龙胆是什么| 胃气上逆吃什么中成药| 依云矿泉水为什么贵| 工作效率等于什么| 软科是什么意思| 前位子宫是什么意思| 部队大校是什么级别| 瑜伽是什么运动| 什么是化合物| 尖斌卡引是什么意思| 回民不能吃什么| 吐司是什么| 肝在什么位置图片| 藕色是什么颜色| 致什么意思| 血管堵塞吃什么好疏通| 掌中宝是什么肉| 霜降穿什么衣服| 强直性脊柱炎有什么症状| 痔疮吃什么水果好得快| 求购是什么意思| 锻炼pc肌有什么好处| 什么东西软化鱼刺最快| 什么笔不能写字| 维生素d什么牌子的好| 师夷长技以制夷什么意思| 见分晓是什么意思| 什么是脉冲| 女人性高潮是什么感觉| 川崎病是什么原因引起的| 独活主治什么病| 月子餐吃什么| 形婚是什么意思啊| 什么是白内障| 河南有什么市| 肌酐高说明什么问题| 娃娃亲是什么| 金字旁有什么字| 鼻炎是什么引起的| 吃三七有什么功效| 1887年属什么生肖| 羲字五行属什么| 痛风要吃什么药好得快| 水瓶座和什么座最配对| 活水是什么意思| 刺猬是什么动物| 顾影自怜是什么意思| 脚踝韧带拉伤吃什么| 嗓子有痰是什么原因| 无意识是什么意思| 坏血症什么症状| 甲状腺实性结节什么意思| 地瓜什么时候成熟| 考科二紧张心慌有什么方法缓解| 办银行卡需要什么条件| 血压高有什么好办法| 痛风会在膝盖什么位置| 四川有什么好大学| 脚后跟疼什么原因| 七字五行属什么| 男人交生育保险有什么用| 脾胃伏火是什么意思| 猪肝和什么菜搭配吃好| 为什么三文鱼可以生吃| 日本浪人是什么意思| 为什么要学数学| 脸上长粉刺是什么原因引起的| 97年五行属什么| 前庭是什么意思| 什么是痔疮| 鹦鹉鱼能和什么鱼混养| 来月经前头痛什么原因| 撮箕是什么意思| 失眠吃什么好| 74年属什么的生肖| 壶承是什么| 尿常规是检查什么的| 白蚁吃什么| 色织布是什么面料| 胃下垂吃什么药最好| 2月30日是什么星座| 什么叫伪娘| 1983年五行属什么| 晚上一点多是什么时辰| 1978年属马五行属什么| 骑自行车有什么好处| 拉抽屉是什么现象| 摩羯座是什么性格| 天雨粟鬼夜哭什么意思| 声东击西是什么意思| 吃瓜是什么意思| 斐乐是什么档次| 老人高烧不退是什么原因| 肝功能挂什么科| 白色搭配什么颜色好看| 睡觉打嗝是什么原因| 月经崩漏吃什么止血| 元参别名叫什么| 烫伤挂什么科| 喉咙有异物感吃什么药| 肾绞痛可能由于什么原因引起| mt是什么单位| 肠息肉有什么症状| mbc是什么意思| 不是月经期出血是什么原因| 风情万种的意思是什么| 石几念什么| 宫内妊娠是什么意思| 生化流产是什么原因造成的| 脖子长痘痘是因为什么原因| 胃溃疡不能吃什么食物| 姨太太是什么意思| 菜心又叫什么菜| 炭疽病用什么农药最好| 什么是正念| 恩惠什么意思| 心律不齐吃什么食物好| 指甲有竖纹是什么原因| 一什么不| 水瓶座的幸运色是什么| 吃什么去胃火口臭| tmd是什么意思| 月经什么颜色的血是正常的| 品保是做什么的| 什么叫认知能力| 地球为什么是圆的| 厄运是什么意思| 挪威用什么货币| 白干是什么| 排骨炖什么汤好喝| 瘰疬是什么意思| 下巴长痘什么原因| 百度

测试管理 浅谈测试工程化 - 以并发自动化框架为例

terrychow · 2025-08-06 · 最后由 terrychow 回复于 2025-08-06 · 5802 次阅读
本帖已被设为精华帖!

前言

  • 前段时间老大让我在团队进行一次技术分享,这也是在新公司的第一次分享,想起之前在社区分享过那个客户端并发自动化测试小框架,那就拿它来说一下吧,本来的主题是想介绍一下小框架的实现原理和使用方法,后面想想不太对,写 ppt 的时候特意看了一下自己以前写过的技术帖,发现自己过去只是给大家分享我的工具怎么用,我的工具怎么实现的,但是好像没说或具体说过我为什么要做这些工具,后面,我把 ppt 的主题改了一下,改成了测试设计与分析, 工程化的流程大部分朋友都应该了解过,结合实际工作上的情况,我简单地总结为下图:
  • 有了解过少部分同行,在开发测试工具,或者做测试方案,比较多的时候会直接想到什么就敲什么代码,想到什么坑就填什么坑,但是这样或许会带来越来越多的坑,做出来的东西也未必会满足原本在测试工作上的需求,甚至脱离原本的需求,没有合理的方案去治疗测试工作上的痛点,工作效率以及品质管理的水平是得不到有效提升的,测试工具或测试方案,其实可以作为一个工程,既然是工程,它必然会遵循上图的流程,也就是说我们可以把测试用工程化的方式进行分析,设计以及实现落地,同时它也是一个产品,产品最主要的作用就是满足需求,测试人员就是需求的来源,最终的目的就是在测试工作上服务测试人员,促进生产力以提升产品质量,所以在以往的一些技术设计当中,我会按照这样的套路来做方案,有清晰地分析和设计,才能有高可用的方案落地,授人以鱼不如授人以渔,这次分享一下我设计测试工具或测试方案的一些工程化的想法

测试工程化

一、测试需求分析

  • 百度 测试道路上均安装了明显的自动驾驶测试路段指示标识,自动驾驶测试车辆上也统一张贴醒目的自动驾驶测试车身标识,便于公众识别。

    以并发自动化框架为例,随着业务的增长,自动化测试用例的数量也会随之增加,最明显的问题就是自动化测试执行的时间会越来越长,这个是自动化测试中遇到的一个很普遍的痛点,为了解决这个痛点,当时提出要做并发自动化测试,当然,东西要落地,还是需要论证的:

  • 提高执行效率和收益:

    • 1、减少自动化测试的执行时间
    • 2、单位时间的测试过程可以覆盖更多的测试环境和测试范围
    • 3、可以满足某些特定场景的测试需求,比如多机互动
    • 4、........
  • 但同时也会带来成本:

    • 1、环境资源成本
    • 2、项目成本
    • 3、维护成本
    • 4、.........
  • 好了,结合我们的业务,满足做自动化测试的条件的项目有两个移动端和一个网页端,于是,我们就罗列出测试需求:

    • 1、使用操作相对简单,无 coding 基础也可以很快上手
    • 2、可以在 Mac 上 iOS、Android 和 Web 以及在 Win 上 Android 和 Web 的自动化测试
    • 3、可以多台真机或模拟器或多个浏览器同时执行自动化测试
    • 4、或许还有其他隐藏的需求………..
  • 结合分析上述的需求,我们提出了这次测试工程的目标:用一句命令将整个并发自动化测试的过程执行起来,有了目标之后,下一步就可以进行测试设计了

二、测试设计

  • 以上述的目标,我们需要设计一些方案来满足目标和需求,为了实现目标,有两个要素:技术选型和怎么用技术。对于技术选型,无非就是选取某种语言或某些框架等,怎么用,那就是一些设计方案,比如:

1、技术选型:

项目 作用
Appium 移动端支撑
Selenium Web 端支撑
Python 跨平台,实现支撑
RobotFramework 易用性,测试执行支撑
Docker 测试环境支撑
Xterm Mac 上多窗口服务支撑
  • 有了上面的技术选型之后,以技术作为元素,开始做要满足需求的设计方案

2、设计方案:

方案 描述
并发方案 1、按测试套件分配,使用 RF 中的 tag 作为区分标记
2、为同时满足 mac 和 win 上的并发执行,采用多进程的方式,按测试套件 tag 分配并发
环境方案 1、Web 端环境:Docker 的浏览器镜像 +Selenium-Grid 镜像集群
2、移动端环境:多台真机或模拟器(Android 的无线调试,iOS 也支持)
分配方案 1、移动端:一个 tag 对应一台设备和一个 appium 服务
2、Web 端:一个 tag 的对应一个浏览器
  • 方案是为了满足需求和目标而设计的,但方案本身也来会带来需求或难点,为实现上面的一些方案,我们还需要解决一些主要问题

3、难点解决方案:

难点 解决方案
设备 udid 获取 获取 udid 构造成设备列表:
1、Android:adb devices
2、iOS:idevice_id –l
输入参数获取对应类型的设备 udid
Appium 启动方式 1、根据设备数量或输入的参数值自启动对应的数量的 Appium 服务
2、自动根据参数和系统识别以 sh 或 bat 的形式启动
3、用到的端口:服务端口,bootstrap 端口,wda 端口
范围:
Android:默认 4723,5723 开始加一启动
iOS:默认 14723,8101 开始加一启动
设备和 appium 对应的方式 1、默认接入的第一台设备对应第一个启动的 appium 服务,以此类推
2、可选择以第 N 台接入的设备开始来执行自动化测试
环境和测试类型 1、自动识别是 Mac OS 还是其他操作系统,以执行不同的命令类型
2、参数化要支持测试设备的类型
  • 当然,对于方案自身还有其他亮点我们也可以一一攻破:

    • 1、自定义使用端口范围
    • 2、appium、selenium-grid 服务检查
    • 3、Docker 测试环境自动构建
    • 4、还有很多.........
  • 有了上面的方案设计,能够清晰地指引我们如何去实现一个测试框架来满足我们对并发自动化测试的需求

三、测试实现和落地

  • 通过设计以后,我们能够清晰地得到框架的架构图,这也是我们要实现的东西

  • 对于移动端

  • 对于 Web 端

  • 这两幅图在帖子 1:Web 应用并发自动化测试和帖子 2:两句命令实现移动端并发自动化测试也有,具体的实现在文章中也有详细的讲到,其实帖子 1 就是帖子 2 的雏形,帖子 2 将移动端和 Web 端都整合起来得以实现(具体可以看帖子 2 下的更新评论),其落地的效果在帖子中也提到过,套路基本上是这样子,以工程化的模式,带点产品的思维来实现测试工具和测试方案

四、测试维护

  • 在工具或方案实现落地之后,随着技术的升级以及业务的变化,测试业务和测试人员需求也会随之改变,所以要适时地调整维护升级已经落地执行的工具或方案,当然这也是需要把握一定的范围,比如技术升级,必须了解清楚技术的变动范围,盲目的升级会降低方案或工具可持续运行的能力,业务方面要把握工具或方案的定位,比如框架是做客户端并发自动化测试的,但不能因为具备并发的能力,就说要加上服务端性能测试的功能或其他的,这样也违背产品定位的原则,维护也是要有目的,维护是为了在保持原有的定位下将提高对需求以及需求提出人员的服务能力,所以再次按照上述的套路,实现满足需求的方案,一个工程化的闭环才得以完成

扩展

  • 上文以一个工具或框架为例子,对于测试方案,这里就简单扩展一下,如灰度测试,灰度测试的需求更多地是我们怎么才能充分地去覆盖我们所期望带来价值的业务,保证其质量达标,满足生产经营的标准,我们也可以用工程化的思想,明确需求之后进行设计,要解决两个范围的需求:业务范围和用户范围。比如为了有效地覆盖业务范围,我们可以选取用户粘度和用户画像相对接近业务的用户范围,通过对这部分用户的灰度,通过 nginx 或 diffy 等数据引流方案以及服务隔离等方案,实现落地收集其使用的数据通过大数据处理方案等加以分析,最后论证业务解决需求痛点的程度以及得到新的需求,这也是一个从提出需求到设计到落地到最后得到新需求继续维护的过程,也就是工程化的闭环,百变不离其中

总结

  • 从拿到需求,到分析需求,到方案设计,到实现落地,这都是很基本的工程化的套路,总的来说就是我们要清楚我们的目标是什么,要解决什么问题,用什么办法解决,最后得到什么价值,测试工程是一项庞大的工程,本文只是以一个测试工具的实现来简单概括工程化的模式,其实在产品研发乃至线上生产,每一个环节都需要测试工程化的支撑
  • 我们之所以叫做测试工程师,不是因为我们会找 bug 或会写代码,是因为测试工程师能够将测试工作甚至是质量保障工作,以工程化的形式来支撑产品或项目能够持续经营,一套高可用的工具或方案的实现离不开工程化的模式
  • 最近买了一本新书,里面也提到 测试=工程效率 + 品质管理,通俗地说就是,提高团队工作效率,提升产品业务质量,之前总是有同行说不清楚测试人员的价值所在,那现在就请重新审视一下吧,测试工程师在团队里面是很重要,很重要,很重要的。结合工程化的思想,为这两个核心服务,测试人员是互联网时代一个不可缺失的重要角色,前人总结的经验总是有用的,如果大家觉得这种套路在测试工作中有起到一点帮助的话,那非常好,如果有同行有更好的想法或其他方案,也欢迎一起讨论研究,谢谢
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 14 条回复 时间 点赞
terrychow #6 · 2025-08-06 Author

今天有点倒霉,车被撞了,都不知道能不能及时修好,希望最好赶在下周六前搞定吧,不然去深圳参加社区活动就有点麻烦了,写一下文章定定神,总结一下,也当激励一下自己吧

学习一下??

terrychow #5 · 2025-08-06 Author
大海 回复

?? 多交流交流

4楼 已删除

赞,这样一写实现起来思路就很清晰了

每一步思路写的非常清晰,学习啦,感谢!

像楼主这种主动学习主动承担的,超越很多人了,写的很好

—— 来自 TesterHome 官方 安卓客户端

terrychow #8 · 2025-08-06 Author
CC 回复

谢谢鼓励?? ,欢迎多交流交流经验哈

小白需要多多学习了,感谢分享

好东西,收藏!

能顺便八卦下新书是哪本不

terrychow #15 · 2025-08-06 Author
thanksdanny 回复

社区现在挂在腾讯的那本

terrychow 回复

哈哈哈正好我也入手了 赶紧也看看先

思寒_seveniruby 将本帖设为了精华贴 04月17日 12:56

支持下,工程化思维和工程经验是工程师最重要的核心能力。

terrychow #1 · 2025-08-06 Author

谢谢思寒大大鼓励??

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
六味地黄丸吃多了有什么副作用 有什么汤菜谱大全 珠光宝气是什么生肖 胎盘成熟度2级是什么意思 喝完酒胃疼吃什么药
奴役是什么意思 为什么新疆人长得像外国人 蛋白粉有什么用 什么蓝牙耳机好 空调开不了机是什么原因
十二生肖叫老大是什么生肖 十月一是什么星座 喉咙发炎吃什么药最好 八月十一号是什么星座 治疗梅毒用什么药最好
熬中药用什么锅 淋巴发炎吃什么药 三门代表什么生肖 清洁度2度是什么意思 一般什么人容易得甲亢
男生射精是什么感觉bysq.com 补钙吃什么最好hcv8jop8ns6r.cn 牵牛花像什么hcv8jop8ns6r.cn 肋骨属于什么骨hcv8jop9ns9r.cn 小孩睡觉打呼噜是什么原因xjhesheng.com
梦见自己给自己理发是什么意思hcv9jop0ns6r.cn 出汗有盐霜是什么原因hcv9jop4ns7r.cn 支气管炎咳嗽吃什么药hcv9jop3ns9r.cn 海马体是什么hcv9jop3ns5r.cn nbp是什么意思hcv9jop4ns4r.cn
别出心裁的裁是什么意思zhiyanzhang.com 晒背有什么好处hcv8jop7ns6r.cn 肝纤维化是什么意思hcv8jop8ns3r.cn 六月十八是什么星座hcv7jop5ns3r.cn 榻榻米床垫什么材质的好naasee.com
白咖啡是什么hcv9jop6ns2r.cn 邮政编码是什么意思hcv8jop3ns6r.cn 前列腺增大钙化是什么意思hcv9jop4ns4r.cn 男大女6岁有什么说法hcv9jop2ns8r.cn 2000属什么生肖hcv8jop0ns0r.cn
百度