首页 > 其他分享 >ui自动化测试设计思想

ui自动化测试设计思想

时间:2024-09-26 21:50:53浏览次数:1  
标签:脚本 控件 appium ui 测试 自动化

UI自动化测试:

自动化测试的目的是提高效率,所以在开始自动化测试之前一定要问自己以下三个问题,尤其第一个是很容易忽视的。

一:是否需要自动化测试

二:需要采用什么自动化测试方法

三:如何开展自动化测试

 

一:是否需要自动化测试

对于是否需要的问题,时候什么需要,当项目属于一直做的项目,一直迭代的项目,不是一锤子买卖,并且对质量要求较高的,还有就是项目周期较长,有时间让你去搞自动化的时候,就是有必要做自动化。另外做自动化之前,如果不确定,最好开会评估,然后定方案。

 

二:需要采用什么自动化测试方法

采用什么自动化测试方法主要分为两个方向:一是UI自动化,二是API自动化,那么该怎么应用呢?

当改变主要发生在逻辑层,ui 变化较少时,ui自动化维护成本较低。这时候就选择ui自动化;当 ui 变化较大,这时候ui脚本维护成本就大,就不能采用UI自动化测试了,采用API自动化较为划算。

api自动化也有局限性,它对研发代码的依赖很强,通常是研发代码提交后相应的测试代码没写完,等下一次编译时又不通过。

 

三:如何开展自动化测试

如何开展自动化测试,选择什么工具进行自动化测试,用appium,robotium,UIAutomator等方法。

 

appium有如下优点:

1。支持跨平台,同时支持android,ios,hybrid

⒉。语法简单,学习成本低,大部分测试人员经过短时间学习就可以掌握和使用。

 

appium缺点如下:

1. 需要查桩,必须连接电脑才能使用,如果被测试项目需要脱机测试就不能用appium了,比如测试手机耗电量性能测试,如果插着数据线连接电脑,会一直充电,就不能用appium,这时候可以选择UIAutomator。

2. appium脚本运行时间较长,如果需要快速测试,不如让人工手工测试效率高

3. 另外appium 相对于 UIAutomator 更重一点,如果想更轻量化一点可以使用 UIAutomator

 

在做UI自动化测试时,我们需要关注三个方面

1.可重用性

脚本的维护都需要时间成本,所以在做Ul自动化的时候可维护性就尤为重要了,为了提高脚本的可维护性,这里主要采用两种方式,一是封装公共方法;二是套用公共模板。

公共方法是指所有用例脚本都会执行和用到的方法,比较常用的一些操作(单击,双击,输入,清除,删除,左滑,右滑,上滑,下滑,放大,缩小,下拉,等等)

公共模板比如下面,这样一套操作流程

try:

编写脚本代码xxxxx

编写脚本代码xxxxx

export:

捕获异常:

打印日志:

 

2.稳定性

1)一个脚本中包含多个用例,如果一个用例没有编写异常捕获的代码,当一个异常发生时,整个脚本就停止运行,其他的用例就无法继续执行。解决方法是所有的用例都独立运行,都编写异常捕获,互不影响。

2)个别控件元素如id或名字变化了导致控件获取不到,脚本停止运行,解决方案是把通用的控件放到一个文件中单独保存,当控件id发生变化时,不用每个脚本都改,只需要改控件文件即可。

 

3.通用性

标签:脚本,控件,appium,ui,测试,自动化
From: https://www.cnblogs.com/gancuimian/p/18434496

相关文章

  • D18【python接口自动化学习】-python基础之内置数据类型
    day18综合练习:实现手机通讯录(下)学习日期:20240925学习目标:内置数据类型--27小试牛刀:如何使用类型转换实现手机通讯录(下)学习笔记:实现手机通讯录案例文件withopen('27-demo.csv')asf:file_data=f.readlines()print(file_data)#[',张三,同事,13511112222\n......
  • Unity UI Tookite:实现命令控制台 [自定义元素]
    目录前言功能需求基础逻辑实现——输入输出分离逻辑实现——命令解析/历史指令切换历史指令解析指令基于反射的命令组自动装载逻辑实现——命令提示逻辑实现——定位报错逻辑实现——内容滚动/元素铺满逻辑实现——可变文本块最后前言最近在将Godot项目重写至Unit......
  • Python办公自动化之Excel
    在日常工作中,Excel是很多办公人士必不可少的工具,而随着工作流程的复杂化,手动操作Excel的效率已无法满足高效办公的需求。那么,如何通过Python来实现Excel的自动化操作,帮助我们节省时间,提高效率呢?Python如何高效处理Excel文件?通过Python,我们可以快速地读取、修改和......
  • 渗透测试怎么做?看看大神一次完整的渗透测试实战
     在网络安全的世界里,渗透测试是一项关键的技术。你是否曾好奇,安全领域的专家们是如何一步步攻破一个系统的?今天我们将带你走进一次完整的渗透测试实战,让你体验大神级别的渗透技巧。渗透测试究竟是如何进行的?从信息收集到漏洞利用,再到权限提升,每一个步骤都至关重要。渗透测试......
  • 题解 QOJ837 / ZROI1287【Giant Penguin】
    PetrozavodskWinter2020.Day3.300iqContest3.ProblemG.GiantPenguinGiantPenguin-Problem-QOJ.ac题目描述有一个\(n\)个点\(m\)条边的连通无向无权图,满足每个节点在至多\(k\)个简单环上(没有重复顶点的环是简单环)。\(q\)次操作支持:1.标记一个点;2.询问......
  • 前端使用webpack本地实现编译时出现错误[cached] 1 asset ERROR in main Module not
    一:概述Webpack是一个现代JavaScript应用程序的静态模块打包工具。它主要用于将JavaScript代码、CSS、图片等资源模块化管理,并最终打包成一个或多个文件,方便在浏览器中使用。以下是对Webpack的详细介绍:主要特点模块化:Webpack支持ES6模块、CommonJS和AMD模块,能够将各种......
  • WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
    前言今天大姚给大家分享一套基于.NET8.0+LayUI的快速开发框架,项目完全开源、免费(MITLicense)且开箱即用:WaterCloud。可完全实现二次开发让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。项目介绍WaterCloud是一套基于ASP.NET8.0MV......
  • vue tsx功能测试,包含v-model 实现,slot实现,数据响应注意点
    child.tsximport{defineComponent}from'vue';//响应式数据需要放在函数外面,或者放在setup里面constdata1=ref(123);functionmyComponent(){constdata2=ref(34);//在这里定义ref无法响应式functiondata2ClickHanlder(){data2.valu......
  • 持续测试:确保 DevOps 管道的质量
    持续测试是现代软件开发中的关键实践,尤其是在DevOps框架中。它涉及在整个软件交付管道中自动执行测试,以确保对代码库所做的每项更改都得到彻底验证。通过将测试集成到开发过程的每个阶段,持续测试旨在尽早发现并解决缺陷,从而显着降低生产中失败的风险。什么是持续测试?持续测试是......
  • 寻找经济实惠的同日格兰尼公寓(带 Pillar Build Granny Flats)
    在PillarBuildGrannyFlats,我们为您提供祖母屋解决方案的精英服务,满足您的独特需求。无论是房主、承包商还是投资者,我们都可以帮助您在当天购买后院公寓,效果非常好,为您节省宝贵的时间,而且不用说,预算也很实惠。我们的祖母屋建造者将在每一步工作,以确保您的项目以最精确和细心的......