百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

如何使用Python实现UI自动化测试,小白完整入门篇

toyiye 2024-04-12 15:48 55 浏览 0 评论

手动测试做久了,总会想要尝试接触些新技术,UI自动化就是一个非常容易尝试的入门砖。

小白也能做,相信自己放手去试吧。

  一、为什么需要做UI自动化

  1.想一想,为什么需要做UI自动化

  可以从解决问题的角度出发,想一下在工作中,哪些工作重复性非常高?

  最最常见的重复性工作,那就是:功能回归测试啦。

  现在市面上的大小公司都在推敏捷开发,几乎都是2周/3周发一次版本。

  即2周/3周跑一次回归测试,而且Android和iOS都需要跑一次,即便分在个人头上的回归内容很少,其实也占据了大家大量时间。

  当然,并不是说UI自动化只能在回归测试阶段发光发热,在测试的任何阶段都可以尝试跑UI测试脚本,可以根据公司需要调整运行阶段、运行次数,并且可以随时修正脚本内容。

  2.做UI自动化可能需要克服的阻力

  在一个技术氛围偏低的团队,如果想要尝试新技术,有可能会比较难以迈出第一步。

  这时候你需要给出充足的理由,再开始跟领导沟通。

  第一步,先做个demo,单纯的启动APP,跑通几个简单的主流场景。

  第二步,整理一份简略版主流程测试点,作为后续使用UI自动化来实现的内容。

  第三步,去找领导沟通吧

  (1)有明确的启动实例,有明确待实现的主流程测试点,想清明确可以运行的测试阶段

  (2)邀请组内同事一起加入,和团队伙伴们一起进步

  (3)找迭代中闲暇的时间,梳理本期的新流程,并编写新脚本

  相信有明确目标,有实例支撑,得到领导的支持应该不会太难。

  二、UI自动化可以怎么做

  1.常用工具

  目前比较常用的有:Appium、Airtest、AppiumStudio

  建议选择其中一个长期使用,推荐使用:Appium。

  2.常用脚本语言

  Python、Java均可,如果是零基础小白的话,Python上手可能会更快。

  3.平台区分:iOS、Android

  4.集成jenkins

  如有稳定项目后,可以尝试集成到jenkins上,定期运行。

  5.一个简单的UI自动化例子(iOS版本)

  因为目前网上已有巨量的Android 自动化例子,这里给一份iOS 真机的示例。

  运行iOS自动化,需要有一台mac,资金不充裕的话,建议入macmini。

(1) 启动APP

caps = {}

  caps["platformName"] = "iOS"

  caps["platformVersion"] = "13.1.3"

  caps["deviceName"] = "xiaobai"

  caps["xcodeOrgId"] = "xxx" # 需要跟开发同事要一份

  caps["xcodeSigningId"] = "iPhone Developer"

  caps["automationName"] = "XCUITest"

  caps["startIWDP"] = "true"

  caps["udid"] = "auto"

  # 真机专用包,如/DerivedData下没有app,需要xcode上build一下

  caps["app"] = "xxx"

  (2)定位元素

  iOS定位元素方式主要有以下几种:

  ios_predicate、accessibility_id、class_name、xpath

  以下的例子里使用的是xpath,查找效率十分低下。

在实际使用中大家可尝试使用ios_predicate。

cls.driver.find_element_by_xpath("//XCUIElementTypeButton[@name='跳过']").click()

  (3)断言

  推荐使用:Assertpy

  pypi地址:https://pypi.org/project/assertpy/

  github地址:https://github.com/ActivisionGameScience/assertpy

  (在readme里,有相当详细的使用方法)

  这个三方库库,实现了多种数据类型的断言方法。

不过对小白来说,可以单纯先尝试判断元素是否存在。

assert_that(self.find(By.NAME, "啦啦)).is_not_none()

  6.还可以尝试什么

  (1)可以考虑设计更复杂,更长链条的场景,但这点需要考虑各个公司的具体业务场景,可挖掘的业务点很多,可以拉同事一块讨论。

  (2)UI自动化和接口数据校验拆开做,混杂在一起容易做的庞大冗余。

  (3)可以在跑UI脚本过程中,尝试收集手机性能数据,标准可以暂定:首次收集到的数据,或者竞品的数据,不过竞品数据会比较难拿到。

请关注+私信回复:“测试”就可以免费拿到Python测试开发课程大纲及软件测试学习资料,快速让自己变强!

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码