脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python+appium自动化测试之如何控制App的启动和退出

python+appium自动化测试之如何控制App的启动和退出

2022-09-27 11:18蜗牛Tin Python

本文主要介绍了python+appium自动化测试之如何控制App的启动和退出,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

由于本人使用的是Android设备做自动化测试,所以以下内容均基于Android系统做出的整理

 

一、启动app

启动app需要设置Capability参数,而Capability参数放在Desired Capalibity中,Desired Capalibity告诉Appium想要的自动化平台和应用程序,这是一组键值对,主要是用于通知Appium服务器建立需要的session

设置Capability的公共部分

platformName     自动化测试手机的操作系统(Android/iOS)
platformVersion  手机对应的版本(Android 10)
deviceName       连接的设备名(模拟器或真机)

设置Capability 的Android部分

appActivity 通过APK包获取,获取方式在下方有说明

appPackage 通过APK包获取包名,获取方式在下方有说明

Android完整案例:

def start(self):
        caps = {"platformName": "Android",
                "deviceName": "U4AIUKFAL7W4MJLR",
                "platforVersion": "9",
                "appPackage": "com.sina.weibo",
                "appActivity": "com.sina.weibo.SplashActivity",
                "autoGrantPermissions": "true",
                "automationName": "UiAutomator2"
                }

        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

1.plateforName的作用?

操作系统,例如:Android、iOS、FirefoxOS

2.deviceName的作用是什么?(获取设备名的方式在下面内容)

设备名,连接的设备名(真机或模拟器)

3.platforVersion的作用是什么?

操作系统版本,对应连接的模拟器或手机的系统版本

4.appActivity和appPackage的作用是什么?(获取的方式在下面内容)

使Appium确切知道应为您的应用程序启动哪个程序包和活动。否则,Appium会尝试从您的应用清单中自动确定这些内容。

5.autoGrantPermissions的作用是什么?

让appium自动授权app权限,如果noReset为True,则该条不生效(该参数为Android独有),对应的值为True或False

6.automationName的作用是什么?

使用引擎,默认为Appium,其中Appium、UiAutomator2、Selendroid、Espresso用于Android,XCUITest用于iOS

7.webdriver.Remote("http://localhost:4723/wd/hub", caps)的作用是什么?

webdriver.Remote实际上就是原生webdriver的子类,另外Remote()构造函数的第一个参数中需要显示指定appium server监听的端口

 

二、退出App

def teardown(self):
		driver.quit()

 

三、appium实现原理

客户端(即PC端)通过4723端口,向服务端(server)发送代码请求,服务端与移动端(设备:手机或模拟器)通过4724端口进行通信,当服务端接收到请求后,移动端的Bootstrap.jar包,将命令传送给Uiautomator执行点击、滑动的操作。

Bootstrap的作用:启动socket通信,监听4724端口

如下图所示:

python+appium自动化测试之如何控制App的启动和退出

appium只是一个框架,调用的自动化框架是Android或iOS本身的框架,默认端口号是4723,本地的IP地址是:http://127.0.0.1,或http://locahost

 

四、如何获取deviceName?

移动端在“手机->设置->开发者选项”中打开USB调试,PC端按下【Windows+R】,输入cmd,运行cmd,输入adb devices,如下图所示:

python+appium自动化测试之如何控制App的启动和退出

图中的device前面的参数即表示设备名:U4AIUKFAL7W4MJR

 

五、如何获取apk的appActivity和appPackage?

1、在Android SDK的文件夹下找到aapt.exe应用程序,在"D:AndroidSDKuild-tools30.0.1"路径下,如下图所示:

python+appium自动化测试之如何控制App的启动和退出

2、按下【Windows+R】,输入cmd,运行cmd ,进入该盘,再进入appt.exe所在的文件夹,输入的内容为:“cd D:AndroidSDKuild-tools30.0.1”,则可以进入该文件夹,进入文件夹后输入“aapt dump badging apk所在的路径+apk名字”,如下图所示即为成功,下图所示为获取到的app的appPackage

python+appium自动化测试之如何控制App的启动和退出

下图所示为获取到的app的appActivity

python+appium自动化测试之如何控制App的启动和退出

 到此这篇关于python+appium自动化测试之如何控制App的启动和退出的文章就介绍到这了,更多相关python appium App的启动和退出内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/TinHuang/p/15539544.html

延伸 · 阅读

精彩推荐
  • Python总结几个非常实用的Python库

    总结几个非常实用的Python库

    Python一直被自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用. 除了内建的模块外,Python还有大量的第三方模块...

    程序员唐丁4272021-12-08
  • Pythonpython实现Thrift服务端的方法

    python实现Thrift服务端的方法

    这篇文章主要介绍了python实现Thrift服务端的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...

    酌三巡11762021-10-15
  • PythonPython的网络编程库Gevent的安装及使用技巧

    Python的网络编程库Gevent的安装及使用技巧

    Gevent库的奥义在于并发式的高性能网络程序设计支持,这里我们将来讲解Python的网络编程库Gevent的安装及使用技巧,来看一下Gevent支持的多进程程序编写:...

    乌龟壳5442020-08-29
  • Pythonpython单元测试框架pytest的使用示例

    python单元测试框架pytest的使用示例

    这篇文章主要介绍了python单元测试框架pytest的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    bai_nian_min_guo21492020-10-07
  • PythonPython通过fnmatch模块实现文件名匹配

    Python通过fnmatch模块实现文件名匹配

    这篇文章主要介绍了Python通过fnmatch模块实现文件名匹配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    lincappu4952020-10-01
  • Python使用python读取csv文件快速插入数据库的实例

    使用python读取csv文件快速插入数据库的实例

    今天小编就为大家分享一篇使用python读取csv文件快速插入数据库的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    chenKFKevin14232021-03-07
  • Pythonpython实现K近邻回归,采用等权重和不等权重的方法

    python实现K近邻回归,采用等权重和不等权重的方法

    今天小编就为大家分享一篇python实现K近邻回归,采用等权重和不等权重的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    UESTC_C2_40311982021-05-21
  • PythonLinux下Pycharm、Anaconda环境配置及使用踩坑

    Linux下Pycharm、Anaconda环境配置及使用踩坑

    这篇文章主要介绍了Linux下Pycharm、Anaconda环境配置及使用踩坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    周博u01008332712012021-05-04