举个华为计算器的栗子「Appium环境配置与调试​」

2024-02-25 16:20

本文主要是介绍举个华为计算器的栗子「Appium环境配置与调试​」,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

坚持原创输出,点击蓝字关注我吧

作者:清菡
博客:知乎、云+社区、博客园等各大平台都有。

目录

  • 一、Appium 概述

    • 1.混合应用

  • 二、安装 Appium

    • 1.下载地址

    • 2.Appium 有客户端(python 库)和服务端(Appium apk)

  • 三、Appium 环境搭建

    • 1.java1.8+版本

    • 2.Android SDK

    • 3.Appium Desktop

    • 4.Appium Client

    • 5.Android 驱动

    • 6.安卓模拟器

  • 四、调试

一、Appium 概述

1.混合应用

1.豆瓣上的文章都是 Html 网页,是放在 App 里面的。
2.用安卓系统的原生控件和 Web 网页组合在一起的。

「控件就是页面的元素。」

二、安装 Appium

1.下载地址

https://github.com/appium/appium-desktop/releases

2.Appium 有客户端(python 库)和服务端(Appium apk)。

Appium 是开源的,python、java、c#等都支持。但是作为一个中间角色,它既跟代码进行交互,也跟设备进行交互。

作为中间程序,它需要处理代码发送过来的所有命令。代码发送过来的请求、命令,那它就是 ip 地址和端口这样的一种服务形式。桌面程序就是一个服务端,必须启动 Server。

点击下 Start Server 这个按钮,提示你已经启动了。ip 是本机的 ip,端口号默认是 4723 可以修改。需要自己手动启动让这个中间程序在线,你才可以用 Python 代码实时向它发送命令,只有它启动了才能接收到你的请求。

Appium 和设备间要进行各种交互,不仅限于打开、安装、卸载 app、通知设置、系统设置等。appium desktop 借助 SDK 中的一个开发工具:安卓 sdk,需要安装 jdk 的版本不低于 1.8。

不需要下载安卓 sdk 里面的全部工具,只需要下载 Android ADT 就好了。「ADT 的全称就是安卓开发工具。」

三、Appium 环境搭建

我网盘里已经下载好全部的包:

链接:https://pan.baidu.com/s/1QaDMKqsyGafNEnctHnXx8A 提取码:wvtz

  1. java1.8+版本

  2. Android SDK

  3. Appium Desktop

  4. Appium Client

  5. Android 驱动

1.java1.8+版本

下载 jdk 之后,得到一个 exe 文件,双击进行安装就可以,安装过程中可以更改 jdk 的安装路径,可以根据自己的喜好进行更改,我自己喜欢默认路径安装。

安装完成之后,就需要配置 jdk 的环境变量了。

我的电脑->属性->高级系统设置->环境变量->系统变量,添加三个系统变量,如果已经有的话,直接编辑添加变量值就 OK;

JAVA_HOME

E:\Program Files\Java\jdk1.7.0_71(这是你自己刚才在安装的时候,选择的 JDK 安装路径)

Path

%Java_Home%\bin;%Java_Home%\jre\bin;(如果你的 JRE 选择了其他的路径,第一个分号之后应该是..\Jre\Bin 的路径)

CLASSPATH

.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar

配置好环境变量之后,可以在 cmd 中输入 java,出现扬子鳄调试信息等,那就是配置成功了。

如果你的电脑安装 jdk,输入Java -version就能看到 jdk 版本,无需再次安装。

2.Android SDK

安卓 sdk 和 java jdk 相同,去环境变量中添加以下变量:

新建系统变量:

ANDROID_HOME

D:\adt-bundle-windows-x86_64-20140702\sdk(以你安装目录为准,确认里面有 tools 和 add-ons 等多个文件夹)

用户变量:

PATH

%ANDROID_HOME%\platform-tools;

系统变量:

path

D:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;D:\adt-bundle-windows-x86_64-20140702\sdk\tools;

输入adb version

3.Appium Desktop

直接双击安装即可。

4.Appium Client

安装 nodejs 需配置环境变量,环境变量里新建 NODE_PATH,变量值是把 nodejs 的安装路径配置进去。

「安装 nodejs 靠谱链接:」

https://www.cnblogs.com/li150dan/p/10451772.html

安装时已经勾选了 Add to path 了。

「然后使用命令安装 appium:」

npm install -g appium

通过上面这个命令安装的时候,下载很慢,经常失败或者卡住,可以使用 cnpm 进行安装:

npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install -g appium

「安装完成后,命令行输入 appium 即可启动 appium 服务。但是录制肯定要启动 appium 界面的那个 Start Server 。必须关闭命令行启动的 appium 服务,因为只能选择一个启动方式。」

Appium 客户端(python 库)

「Appium 目前已有的客户端有:」

ruby、python、java、c#、js、PHP、robotframework

Python 客户端库运行如下 pip 命令安装:

pip install appium-python-client

到此,其实 appium 的环境已经搭建完毕。

5.Android 驱动

1.将手机用数据线连接电脑,打开手机开发者模式下的调试模式,然后在电脑上 cmd 窗口输入 adb devices ,能够输出设备的信息即可。
2.获取要测试的当前打开 app 的应用包名和 activity 名称:

adb shell dumpsys window w |findstr \/ |findstr name=

「注意:先打开你要录制的软件再输入这个命令查看。」

这样就能显示该软件的信息将它写入代码中。

6.安卓模拟器

安卓模拟器是能在 PC 平台模拟安卓手机系统的模拟器软件。比较常用的安卓模拟器有:夜神、海马、逍遥、genymotion 等。

模拟器默认是有 root 权限的。

「夜神模拟器:」

windows 平台双击安装。

地址:https://www.yeshen.com

usb 调试模式只针对真机不针对模拟器。

自己的安卓手机需要开启调试模式(开发者模式)。

四、调试

「代码如下:」

{"platformName": "Android","platformVersion": "10","deviceName": "2NSDU20410017297","appPackage": "com.huawei.calculator","appActivity": "com.huawei.calculator.Calculator"
}

点击 start session 后,手机弹出安装 2 个软件,直接安装即可,不用管它。

我是先打开计算器,然后录制的:

「录制出来的脚本如下:」

MobileElement el3 = (MobileElement) driver.findElementById("com.huawei.calculator:id/digit_8");
el3.click();
MobileElement el4 = (MobileElement) driver.findElementByAccessibilityId("乘");
el4.click();
MobileElement el5 = (MobileElement) driver.findElementById("com.huawei.calculator:id/digit_6");
el5.click();
MobileElement el6 = (MobileElement) driver.findElementByAccessibilityId("等于");
el6.click();

运行上面的脚本,就会看到通过代码可以启动华为手机上的计算器进行相关的操作 。

「注意:调试的过程中不要退出正在调试的软件。」


公众号「清菡软件测试」首发,更多原创文章:清菡软件测试 84+原创文章,欢迎关注、交流,禁止第三方擅自转载。

精彩推荐

怎么安装配置ADB环境?

使用Typora+PicGo配置Gitee图床
持续集成有什么好处?快来看鸭
避免栽坑之掌握Jenkins工作原理
Jenkins读取Allure结果出报告
Jenkins持续集成「配置Slave」
pytest的fixture怎么用?
pytest环境准备与入门
Python基础汇总
通读《图解HTTP》脑图

感谢支持清菡原创,欢迎点击在看和转发!

清菡软件测试 提了一个问题

对本篇文章的评价?

参与讨论

这篇关于举个华为计算器的栗子「Appium环境配置与调试​」的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746032

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

使用Python实现网络设备配置备份与恢复

《使用Python实现网络设备配置备份与恢复》网络设备配置备份与恢复在网络安全管理中起着至关重要的作用,本文为大家介绍了如何通过Python实现网络设备配置备份与恢复,需要的可以参考下... 目录一、网络设备配置备份与恢复的概念与重要性二、网络设备配置备份与恢复的分类三、python网络设备配置备份与恢复实