• Appium自动化测试基础 — APPium基础操作API(一)


    1、前置代码

    一个脚本中必须要编写的内容:

    1. # server 启动参数
    2. desired_caps = {}
    3. desired_caps['platformName'] = 'Android'
    4. desired_caps['platformVersion'] = '5.1'
    5. desired_caps['deviceName'] = '192.168.56.101:5555'
    6. desired_caps['appPackage'] = 'com.android.settings'
    7. desired_caps['appActivity'] = '.Settings'
    8. # 声明driver对象
    9. driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    2、安装和卸载APP

    (1)把电脑中的APK安装包,安装到手机上
    安装方法:

    1. driver.install_app(app_path)
    2. 参数:
    3. app_path:脚本机器中APK⽂件路径

    (2)卸载手机上已安装的APP
    卸载方法:

    1. driver.remove_app(app_id)
    2. 参数:
    3. app_id:需要卸载的app包名

    (3)演示练习

    1. # 1.导入appium
    2. import time
    3. from appium import webdriver
    4. # 2.创建Desired capabilities对象,添加启动参数
    5. desired_caps = {
    6. "platformName": "Android", # 系统名称
    7. "platformVersion": "7.1.2", # 系统版本
    8. "deviceName": "127.0.0.1:21503", # 设备名称
    9. "appPackage": "com.microvirt.launcher2", # APP包名
    10. "appActivity": "com.microvirt.launcher.Launcher" # APP启动名
    11. }
    12. # 3.启动APP
    13. # 声明手机驱动对象(实例化webdriver)
    14. # 第一个参数为appium服务的地址,需要启动appium服务。
    15. # 第二个参数为Desired capabilities对象
    16. # 我们就先传入这两个参数就可以了。
    17. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
    18. # 4.操作APP
    19. # 脚本机器中APK⽂件路径,注意前边要加一个r,不然解析地址时可能会报错。
    20. app_path = r'C:\Users\L\Desktop\com.taobao.taobao_V9.15.0.apk'
    21. # 安装apk
    22. driver.install_app(app_path)
    23. time.sleep(5)
    24. # 要知道即将卸载的app的包名
    25. app_id = "com.taobao.taobao"
    26. # 卸载app
    27. driver.remove_app(app_id)
    28. # 5.关闭APP
    29. time.sleep(3)
    30. driver.quit()

    说明:
    一般这两个命令很少使用,即使用命令安装apk软件,一般我们也推荐使用adb命令。就不用把安装app的代码写入脚本中,即使写入脚本,最终执行也是adb命令。如果公司的测试机充裕,我们就把app的安装包放入手机,直接手动安装了。
    一般用到这两个命令是在一个脚本要去测试多个app的时候,会用到这两个命令,在测试时把这几个app先安装上,测试完成之后在卸载app。但是这种情况也基本上不多,一般情况app都单独测试。

    3、判断APP是否已安装

    使用的API:

    1. driver.is_app_installed(bundle_id)
    2. 参数:
    3. bundle_id: 传⼊app包名,返回结果为True(已安装) / False(未安装)

    示例:

    1. # 1.导入appium
    2. import time
    3. from appium import webdriver
    4. # 2.创建Desired capabilities对象,添加启动参数
    5. desired_caps = {
    6. "platformName": "Android", # 系统名称
    7. "platformVersion": "7.1.2", # 系统版本
    8. "deviceName": "127.0.0.1:21503", # 设备名称
    9. "appPackage": "com.microvirt.launcher2", # APP包名
    10. "appActivity": "com.microvirt.launcher.Launcher" # APP启动名
    11. }
    12. # 3.启动APP
    13. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
    14. # 4.操作APP
    15. # 脚本机器中APK⽂件路径
    16. app_path = r'C:\Users\L\Desktop\com.taobao.taobao_V9.15.0.apk'
    17. # 安装apk
    18. driver.install_app(app_path)
    19. time.sleep(5)
    20. # 要知道即将卸载的app的包名
    21. bundle_id = "com.taobao.taobao"
    22. result = driver.is_app_installed(bundle_id)
    23. # 结果是result=true
    24. print(result)
    25. # 5.关闭APP
    26. time.sleep(3)
    27. driver.quit()

    提示:一般我们用眼看app是否安装就可以了,脚本中明确需要的时候再写。

    4、关闭app软件和关闭驱动对象

    关闭app软件和关闭驱动对象的区别:

    • driver.close_app()
      闭当前操作的app,不会关闭驱动对象。
    • driver.quit()
      关闭驱动对象,同时关闭所有关联的app。

    重点:配套学习资料和视频教学

    那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

  • 相关阅读:
    【思考总结】数列收敛和级数收敛的联系与区别【概念辨析】
    如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?
    C51单片机IIC协议的应用
    jvs-智能bi(自助式数据分析)9.1更新内容
    [开源项目推荐]privateGPT使用体验和修改
    使用“vue init mpvue/mpvue-quickstart“初始化mpvue项目时出现的错误及解决办法
    web网页设计期末课程大作业:美食餐饮文化主题网站设计——美食汇5页HTML+CSS+JavaScript
    ROS基础—vscode创建工作空间
    oracle学习48-oracle命令窗口执行sql语句
    css四种导入方式
  • 原文地址:https://blog.csdn.net/m0_59868866/article/details/125618678