appium+python+夜神模拟器+jenkins进行android端自动化测试(2)

告别手动点点点!用Python+Appium+网易MuMu模拟器实现安卓App自动化测试(保姆级环境配置) 每次手动测试App时,你是否也厌倦了那些重复的点击、滑动和验证?作为一名曾经的"手工测试劳工",我完全理解这种痛苦。本文将带你完整走通环境搭建到脚本编写的全流程,特别针对Windows平台下使用网易MuMu模拟器的各种"坑"给出解决方案。MuMu模拟器使用自定义的adb端口和二进制文件,这导致直接使用Android SDK的adb会连接失败。将自动化测试接入CI/CD流水线,实现每次代码提交后的自动验证。自动化测试的环境配置就像盖房子的地基,一步错可能导致后续满盘皆输。 阅读详情

基于上一篇的初步框架搭建和测试【appium+python+夜神模拟器+jenkins进行android端自动化测试】,本篇将记录对脚本编写框架优化后的情况;

整体框架如下:


common:共通方法目录

report:测试报告目录,根据循环测试的次数,形成对应的报告

testcase:具体测试用例目录,并返回用例suite

allcase_list.py:整合所有的测试用例,形成一个testsuite

app.py:启动app应用,定义全局变量webdriver,供整个测试过程调用

test_main.py:测试入口,接受测试循环次数,执行测试,形成测试报告;


在整合这个框架的过程中遇到一个问题:因需循环测试app,webdriver session会根据每次启动程序而发生改变(第二次启动通过定义的方法实现);为此定义了全局变量GLOBAL_DRIVER供整个测试过程调用,每次启动修改此全局变量;

testcase中引用的方式就很重要,如果采用from XX import GLOBAL_DRIVER   则永远获取到的是第一次产生的webdriver;需直接import XX,然后通过XX.GLOBAL_DRIVER方式调用方可;

大致理解应该是通过from XX import的方式,直接将变量导入到了当前模块,成为当前模块的一个变量;后续全局变量值的改变,XX无法感知,当前模块也无法感知;

import XX的方式,是在当前模块建议了一个XX的引用,XX的所有改变,XX可以感知,当前模块也可以感知

不知理解可对,欢迎有经验人士指教;

test_main.py代码如下

import getopt,sys
import unittest
import allcase_list
import HTMLTestRunner
import time
import app

def main( argv = None):
if argv is None:
argv = sys.argv
try:
try:
opts, args = getopt.getopt(argv[ 1:], "hn:",[ "help"])
except getopt.error as msg:
raise Usage(msg)
except Usage as err:
print(sys.stderr, err.msg)
print(sys.stderr, 'for help use --help')
return 2

helpstr = '''Usage:
[-n <循环执行次数>] :
2
Exampl
python2 test_main.py -n 2
'''
number= 1
for opt, value in opts:
if opt == "-n":
number = int(value)
if opt in ( "-h", "--help"):
print(sys.stderr,helpstr)
loop(number)
def loop( number):
curnumber=number
if curnumber==number:
start_test(curnumber)
curnumber=curnumber- 1

while curnumber> 0 and curnumber<number:
time.sleep( 5)
app.start_app()
start_test(curnumber)
curnumber=curnumber- 1

def start_test( curnumber):
try:
suite_main = allcase_list.caselist()
print suite_main

filename = 'report/FCTest'+ str(curnumber)+ '.html'
fp = open(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=fp,
title= 'result',
description= 'report'
)

#执行测试形成报告
runner.run(suite_main)
fp.close()
if app.GLOBAL_DRIVER:
app.GLOBAL_DRIVER.quit()
except Exception as e:
print e.message
if app.GLOBAL_DRIVER:
app.GLOBAL_DRIVER.quit()
if __name__ == "__main__":
sys.exit(main())

Appium+MuMu+Python安卓自动化测试环境搭建与实战指南 自动化测试是现代软件工程中提升效率、保障质量的核心实践,其原理是通过脚本模拟用户操作,自动执行测试用例。在移动应用领域,这项技术能显著解决回归测试、兼容性测试等重复性高、耗时长的痛点,其技术价值在于实现快速反馈、提升测试覆盖率和促进持续集成。常见的应用场景包括移动App的功能验证、多设备兼容性测试以及数据构造等。本文聚焦于使用Appium这一主流开源框架,结合网易MuMu模拟器与Python语言,手把手教你搭建一个稳定、高效的安卓App自动化测试环境,并深入分享环境配置、脚本编写、元素定位及常见问题排查等实 阅读详情

相关推荐

Appium安卓自动化测试实战:从环境搭建到CI/CD集成

移动应用自动化测试是提升软件质量和开发效率的关键技术,其核心原理是通过脚本模拟用户操作,实现重复性任务的自动执行。在技术层面,这通常涉及UI元素定位、事件驱动和跨进程通信等机制。其技术价值在于将测试人员从枯燥的“点点点”手工操作中解放出来,实现快速回归测试、提升测试覆盖率,并支持在复杂的多设备、多版本环境下进行大规模兼容性验证。应用场景广泛覆盖移动应用开发的全流程,包括日常构建验证、版本发布前的回归测试,以及CI/CD流水线中的自动化质量关卡。本文聚焦于Appium这一主流的跨平台移动自动化测试框架,深入探

weixin_42531923的博客 294

【python+appium】使用appium 操作安卓模拟器

我的基本环境:node.js 版本:18.20.0python 版本:3.11java 版本 1.8.0_40appium 版本 1.15python中的appium-python-client 包:版本 – 2.9.0python中的selenium包:版本 – 4.9.0adb 原始版本:1.0.41因为手边没有多余的真机,所以想着尝试用模拟器试一试安卓自动化,踩了不少坑,在此记录一下。我在这儿用到的模拟器是——夜神模拟器 ,android 9。

qq_51543898的博客 4024

Jenkins Appium自动化持续集成

Jenkins Appium自动化持续集成 Appium自动化项目介绍 案例的业务内容是: 打开app 单机Add Contact按钮 在Contact Name中输入a san 在Contact Email中输入email地址 单击Save按钮 校验之后是否返回到首页 项目所用语言是:python代码 项目所用框架是:Appium+pytest框架 项目使用的开发工具为:pycharm 项目源码位置:https://github.com/w1990en0519d/iAppium_python Appi

qq_33581509的博客 955

最全的 App 自动化环境搭建手册(Appium 连接夜神模拟器、Android SDK 环境安装、Appium 客户端连接夜神模拟器)

替换到夜神模拟器bin目录下的 adb.exe 文件和 nox_abd.exe 两个文件,启动模拟器,adb工具可以自动连接到我们的模拟器。根据测试需求,设置手机型号(当前设置:Huawei Mate 30 5G),即安卓平台调试桥,可以通过 ADB 进行管理、操作模拟器和设备。大师兄正在做IT课程开源,记得关注公众号:一起蜕变。,此处的版本要与实际下载版本保持一致。解压目录不能出现中文或特殊字符。更多adb命令,请自行查询使用。出现如下界面代表连接成功。全部采用默认安装即可。

大师兄-时光的博客 2217

自动化测试:Appium+夜神模拟器+微信

本文记录使用Appium+夜神模拟器+微信搭建自动化测试环境

q1003675852的博客 2565

Thompson Sampling vs UCB:5个真实业务场景下的算法选型指南

本文深入对比了Thompson Sampling与UCB算法在电商推荐、在线广告、医疗试验、金融定价和游戏调整五大真实业务场景下的表现。通过量化指标分析,为技术决策者提供了清晰的选型指南:Thompson Sampling凭借其概率匹配和贝叶斯框架,在需要快速收敛、处理冷启动及复杂约束的场景中通常更具优势;而UCB则在要求确定性、可解释性和理论保证的场景下表现更佳。

weixin_29181861的博客 153

python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

qq_21689457的博客 7980

从GEFCom到UCI:手把手教你构建电力负荷时空预测模型(Python版)

本文详细介绍了如何从GEFCom到UCI数据集构建电力负荷时空预测模型(Python版),涵盖数据集解析、时空特征工程、模型架构设计及工业部署优化。通过多任务图神经网络(MTGNN)实现高精度预测,并结合边缘计算和在线学习机制提升实际应用效果,为能源管理系统提供可靠解决方案。

lambda的博客 813

Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告

这篇文章主要介绍了Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下本文主要分为以下几个部分安装Python3安装Python3的Appium库安装Android SDK安装JDK安装Appium安装模拟器编写测试脚本并生成测试报告项目示例下载地址: https://github.com/lixk/apptest。

NHB234567的博客 1617

FLoRA: 基于异构低秩适应的联邦微调大语言模型

大语言模型(LLMs)的快速发展推动了人工智能的进步,预训练的LLMs可以通过微调适应各种下游任务。联邦学习(FL)通过利用客户端的本地数据进行原位计算,进一步增强了隐私保护的微调,消除了数据移动的需求。然而,考虑到LLMs的巨大参数量,微调LLMs对于资源受限且异构的FL客户端来说是一个挑战。之前的方法采用了低秩适应(LoRA)进行高效的联邦微调,但在LoRA适配器上使用了传统的FL聚合策略。这些方法导致了数学上不准确的聚合噪声,降低了微调效果,并且未能解决异构LoRA的问题。

tiger00O的博客 2066

Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进

OCI 的核心目标是创建一个开放的、厂商中立的容器技术标准。这意味着,只要一个容器镜像符合 OCI 镜像格式规范,它就可以在任何符合 OCI 运行时规范的容器运行时上运行。eBPF 是一种革命性的技术,它允许在 Linux 内核中安全地运行沙盒程序,而无需修改内核源代码或加载内核模块。这些程序可以注册到内核中的各种事件点(如网络包到达、系统调用、函数调用/返回),并在事件发生时执行自定义逻辑。核心思想是:在不将数据复制到用户空间的情况下,程序可以直接在内核中处理数据,极大地提高了效率和性能。

专栏 1384

appium+python+夜神模拟器+jenkins进行android端自动化测试

1.        环境搭建 序号 依赖环境 安装 备注 1 Jdk 安装包安装 安装完成后配置环境变量 新增JAVA_HOME为jdk安装路径 C:\Program Files\Java\jdk1.8.0_111 Path中增加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\

飞鱼码头 2万+

霍尔电流传感器在新能源汽车中的应用综述

本文旨在全面剖析霍尔电流传感器在新能源汽车领域的应用现状、技术挑战及发展趋势。通过系统梳理其在电池管理系统、电机控制、车载充电等核心系统的应用场景,深入分析面临的技术瓶颈与创新解决方案,并基于最新技术动向展望未来发展方向,为相关领域的技术创新提供参考依据。

m0_46819860的博客 2259

【python+appium】自动化测试

不同的开发语言、不同的单元测试框架可选用不同的测试报告。一般我们会选择自己熟悉的编程语言来编写自动化脚本,但对于编程基础基本为0的童鞋(或者专注于做自动化测试的童鞋),推荐学习使用Python。不同的开发语言有各自对应的单元测试框架,如Java有JUnit、TestNG、Robot等,Python有unittest、pytest等。可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去。

LAMO 745

VXLAN技术详解

VXLAN(虚拟可扩展局域网)是一种Overlay二层虚拟化技术,通过MAC-in-UDP封装在IP网络上构建大规模虚拟二层网络。核心组件包括VTEP(隧道端点)、24位VNI(支持1600万个虚拟网络)和VXLAN网关。相比VLAN,VXLAN具有超大规模扩展、跨三层互联、支持虚拟机无缝迁移等优势,适用于云数据中心多租户隔离、跨数据中心互联等场景。其基于IP路由的封装方式无需改造物理网络,为现代云网络提供了弹性、安全的虚拟化解决方案。

kjkdd的博客 595

Qt 调用YOLO模型(代码)

本文介绍了如何在 Qt C++ 环境中集成 YOLO 模型进行目标检测,包括模型封装、界面设计和实时处理等关键步骤。通过这种方法,你可以快速开发出具有目标检测功能的 Qt 应用程序,应用于监控系统、机器人视觉、图像分析等多个领域。

轩宇的博客 259

夜神模拟器搭建RF安卓自动化环境

夜神模拟器搭建RF安卓自动化环境   https://www.cnblogs.com/raylei/p/6168795.html

hapasm的博客 460

手把手教你学Simulink——基于自动驾驶辅助系统的场景实例:车道保持辅助系统(LKA)的仿真与实现

本文通过Simulink实例讲解车道保持辅助系统(LKA)的实现方法。首先介绍LKA从预警到主动控制的技术演进,阐述其系统架构、核心组件和工作原理。重点演示基于自行车模型的车辆横向动力学建模过程,以及使用线性二次调节器(LQR)设计横向控制器的详细步骤。教程包含四个仿真场景测试,分析关键指标如控制精度、舒适性和响应性。最后探讨LKA技术的发展方向,强调人机协同的安全理念。该实例为自动驾驶辅助系统开发提供了完整的Simulink实践方案。

MHD0815的博客 182

APP自动化测试环境搭建(Appium+Python+Jenkins 一站式教程)

本文详细介绍了Appium+Python+Jenkins一站式APP自动化测试环境搭建流程,涵盖JDK、Python、Node.js等基础软件安装,Appium Server及驱动配置,设备连接(模拟器/真机),元素定位工具选型,自动化脚本编写与调试,以及Jenkins持续集成配置。重点解决版本兼容性问题(如Appium 2.x+适配JDK 17和Python 3.11),提供完整可落地的技术方案,帮助读者快速构建企业级APP自动化测试体系。

专注实用知识分享的一个务实的技术博客,聚焦 python等领域的干货分享 581

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

mac配置appium进行android自动化教程(python+appium+pytest+yaml+allure+jenkins)

基于python语言,驱动appium对手机发起请求,使用pytest封装测试用例,yaml文件存储测试数据进行数据驱动,allure生成测试报告,jenkins进行持续化集成测试。

SunshineScorpio的博客 2377

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python ui框架_【新书连载8】自动化测试主流工具—搭建Appium测试框架

在进行手机自动化测试的过程中,仅仅会使用Appium工具是不够的。在UI自动化测试中,没有测试框架的二次封装,会导致UI自动化用例编写效率极低,甚至造成UI自动化变得毫无意义。本章将把Appium、Logging模块、批处理、Jenkins这些技术结合起来,构建一个符合企业实际需求的测试框架。准备软件本章涉及的软件如下:Appium 1.8.0;夜神模拟器;Android SDK;Pyt...

weixin_39700625的博客 87

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

使用Appium2.0自动化规模测试APP

最近做个项目需要测试服务端的并发性能,客户端采用安卓,接口数据采用Restul和流媒体播放。由于流媒体的接口并不清楚,所以决定采用安卓虚拟机来模拟。 正好赶上Appium2.0升级,网上的很多资料都不能用了,这里将整个环境搭建的要点记录下来与大家分享。

weixin_44091123的博客 1624

Python自动化测试 APP自动化测试最全教程,玩转自动化测试

随着移动终端的普及,手机App应用越来越多,也越来越重要。而作为测试袁的我们也要与时俱进,努力学习手机App的相关测试。自动化测试主要分为三层:UI层、接口层、单元层。移动端、web端通常所说的自动化测试是指UI层测试。基本原理就是:基于页面元素的识别和定位来模拟用户行为,首先识别到某个元素,比如一个按钮,然后定义一个动作,比如点击,这样就通过代码模拟完成了一次按钮的点击,代替了人工去点击。如果后期再加入数据驱动和Page Object思想就基本可以形成一个UI层自动化测试框架了。

2401_88326437的博客 709

Appium分布式测试与Jenkins持续集成实战:从单机到集群的自动化演进

在移动应用开发中,自动化测试是保障软件质量、提升迭代效率的关键环节。其核心原理是通过脚本模拟用户操作,对应用进行功能验证。随着测试用例规模的扩大,单机串行执行面临效率瓶颈,分布式测试技术应运而生,它通过将测试任务分发到多个节点并行执行,极大缩短了反馈时间。这项技术的核心价值在于实现了测试资源的弹性扩展和测试过程的工程化,是构建高效CI/CD流水线的基础。典型的应用场景包括多机型兼容性测试、大规模回归测试等。本文聚焦于Android自动化测试领域,详细阐述了如何基于Appium搭建分布式测试集群,并将其无缝集

weixin_34199405的博客 506
上一篇: Jenkins+Gradle 实现android端app自动构建
下一篇: 【踩过的坑】jenkins持续集成每次都从jcenter下载jar问题
飞鱼码头
博客等级 码龄10年 48粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值