首页 > 其他分享 >38.自动化遍历测试技术

38.自动化遍历测试技术

时间:2023-12-26 14:55:37浏览次数:41  
标签:遍历 monkey 健壮性 38 测试 自动化 成本

自动化测试与手工测试对比

 
 手工测试自动化测试
业务覆盖度 高 ❤️
执行速度 高 ❤️
维护成本 低 ❤️
学习成本 低 ❤️

{style=“margin: auto”}

手工测试的困境

 
  • 测试广度
    • 回归测试难以保证,测试内容太多导致手工测试无法充分覆盖
    • 兼容性测试难以保证,数十台设备、多种环境、多种版本无法充分覆盖
    • 专项测试回归难度大,内存泄漏、健壮性测试、弱网等测试过程太多
  • 测试深度
    • 人工校验效果难以保证,比如股票相关数据变化共数十个字段,容易产生疏漏
    • 数据搜集繁琐,比如后端接口传输数据的变化和内容收集比较麻烦
  • 测试效能
    • 投入成本大,需要投入大量的人力与管理成本
    • 质量反馈慢,无法实现测试左移与快速反馈

自动化测试的困境

  • 技术门槛高
    • 很多初级工程师对自动化框架掌握程度不够
    • 没有采用 Page Object 模式导致自动化用例维护成本大
    • 没有进行二次框架封装
  • 投入成本大
    • 没有采用合理的 UI 分层测试体系
    • 没有经验丰富的测试开发工程师

我们到底需要什么样的测试方法

 
 手工测试自动化测试理想测试方法
业务覆盖度 高 ❤️ 高 ❤️
执行速度 高 ❤️ 高 ❤️
维护成本 低 ❤️ 低 ❤️
学习成本 低 ❤️ 低 ❤️

智能遍历测试

  • 将被测系统理解为一个有限状态机,通过遍历的方式达到充分的路径覆盖。
  • 自动遍历测试是基于模型的测试方法的一种应用场景

基于模型的测试方法

  • 将 app 的业务行为理解为一个有向图
  • 有向图中的节点代表业务状态
  • 有向图中的路径代表达到特定状态的行为
  • 以充分遍历所有状态为目标

智能遍历测试的特点

 
 手工测试自动化测试智能遍历测试
业务覆盖度 高 ❤️
可累积的自动化用例
高 ❤️
可累积的自动化模型
执行速度 高 ❤️
使用自动化
高 ❤️
使用自动化
维护成本 低 ❤️
不需要维护代码
低 ❤️
不需要维护代码
学习成本 低 ❤️
不依赖自动化技术
低 ❤️
不依赖自动化技术与经验

智能遍历测试相关的工具

 
 是否开源AndroidiOS用途方法论
monkey 开源 支持   压力测试工具
健壮性测试
 
百度 smart_monkey   支持   健壮性测试 改进版 monkey
腾讯 newmonkey   支持   健壮性测试 改进版 monkey
Android App Crawler 开源 支持   遍历测试 基于模型
zhangzhao/Maxim   支持   健壮性测试
遍历测试
基于模型
蚂蚁金服
macaca/nosmoke
开源 支持 支持 遍历测试 基于模型
霍格沃兹测试开发学社
appcrawler
开源 支持 支持 遍历测试 基于模型
字节跳动 Fastbot   支持 支持 遍历测试 基于模型

app 压力测试工具 monkey

 

UI/Application Exerciser Monkey

monkey quick start

adb shell monkey \
  -p com.xueqiu.android \
  --throttle \
  --pct-touch \
  -f 脚本文件 \
  -v
  200

monkey script 模式

type = user
count= 1
speed= 1
start data >>
UserWait(1000)
DispatchPress(KEYCODE_HOME)
DispatchPointer(1, 1,0, 720, 220, 0, 0, 0,0,0,0, 0)
DispatchPointer(1, 1,1, 720, 220, 0, 0, 0,0,0,0, 0)
DispatchPointer(1, 1,0, 680, 425, 0, 0, 0,0,0,0, 0)
DispatchPointer(1, 1,1, 680, 425, 0, 0, 0,0,0,0, 0)
DispatchPress(KEYCODE_HOME)

monkey 工具的缺点

  • 经常点到外部的 app
  • 经常点击到注销和退出

无法灵活控制

标签:遍历,monkey,健壮性,38,测试,自动化,成本
From: https://www.cnblogs.com/csfsz/p/17928128.html

相关文章

  • 自动化和API接口可以应用在哪些工作场景中?
    随着科技的不断进步和发展,新一代的网络安全技术也在不断涌现。其中,VMLogin指纹浏览器以其独特的自动化和API接口功能,为各行各业的网络安全和数据隐私保护提供了可靠的解决方案。一、自动化功能:任何具有重复性的工作可以在VMLogin通过自动化完成。您可以使用Selenium、Puppeteer、RE......
  • 35.基于图像匹配的自动化测试
    图像匹配的自动化测试介绍技术价值与用途解决特殊场景的自动化测试问题不可识别控件,自定义控件、图片控件、滑块安全性较高控件,比如安全键盘特殊渲染引擎,比如游戏app作为常规自动化测试的补充图像识别速度较慢游戏控件通过自定义可以实现控件识别基......
  • Tomcat自动化脚本
    /bin/bashwar包名称war_name="tchg.war"要上传war包指定目录war_dir="/usr/local/src/tchg"工程地址code_dir="/Lims/tchg/apache-tomcat-9.0.48/webapps/tchg"tomcat地址tomcat_dir="/Lims/tchg/apache-tomcat-9.0.48"工程war地址war_webapps=&......
  • 强!推荐一款自动化神器Autolt:不再重复工作
    随着互联网不断发展,它给我们带来便利的同时,也带来了枯燥、重复、机械的重复工作。今天,我要和大家分享一款老牌实用的自动化工具:AutoIt,它能够让你告别繁琐的重复性工作,提高工作效率。这里透露一下,AutoIt算是作者在10年前,用的最多的一款自动化测试工具了。当时自动化测试工具还并......
  • 2203840415蔡浛翊
    选题背景介绍商业和住宅建筑在内的建筑业的全球能源消耗约为20%。随着人口的快速增长和经济增长,预计从1年到3年,建筑物的能源消耗将以每年2018.2050%的速度增长;这种不断增长的能源需求引起了全世界对其对环境负面影响的极大关注。为了满足不断增长的电力需求,需要高效且具有成本效......
  • 初中英语优秀范文100篇-038Should Students Make Firiends Online?学生应该在线交友吗
    PDF格式公众号回复关键字:SHCZFW038记忆树1Nowadays,manyteenagersshowagreatinterestinmakingfriendsonline.翻译现如今,许多青少年对于在网上交朋友表现出很大的兴趣。简化记忆兴趣句子结构1"Nowadays"是一个副词,表示这个句子描述的是现在的情景。2"man......
  • 盘点一个Python自动化办公实战案例(二)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo......
  • # yyds干货盘点 # 盘点一个Python自动化办公实战案例(二)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo发上来......
  • 迭代器模式揭秘:如何优雅应对数据遍历
    推荐语在这篇文章中,深入探讨了迭代器模式的核心原理和实战应用。通过清晰而有条理的解释,读者小伙伴可以领悟到迭代器模式在数据遍历和管理方面的强大能力。无论是初学者还是有经验的开发者,都能从这篇文章中获得实用的知识和技巧,进一步提升代码的可读性和可维护性。什么是迭代器模......
  • Day38 三种数组初始化及内存分析
    三种数组初始化及内存分析Java内存分析Java内存:1.堆存放new的对象和数组​可以被所有的线程共享,不会存放别的对象引用2.栈存放基本变量类型(会包含这个基本类型的具体数值)​引用对象的变量(会存放这个引用在堆里面的具体地址)3.方法区可以被......