首页 > 其他分享 >appium 2.0 beta版体验

appium 2.0 beta版体验

时间:2022-08-26 00:11:09浏览次数:104  
标签:Appium 插件 plugin self appium installed beta 2.0

appium 创建了Appium 2.0的项目看板,项目正在开发中。

https://github.com/appium/appium/projects/2

Appium 2.0 核心特性

  • 独立的驱动:能够安装和使用基于你的应用平台的解耦的驱动程序。(iOS, Android, Windows OS, Flutter, etc.)

我们知道Appium为了支持多平台,集成了各种驱动在里面,使他变得比较笨重,我们在使用Appium的时候往往只完成一两个平台的测试,Appium 2.0 就可以按照需求去安装平台驱动。

例如,只做iOS测试,可以只安装xcuitest。

> appium driver install xcuitest
  • 插件生态: 能够通过插件和与其他技术的集成来修改Appium框架。

除了驱动可以根据需求安装,另外一些能力可以通过插件的方式提供安装。

例如,想使用报告插件,可以安装appium-reporter-plugin.

> appium plugin install --source=npm appium-reporter-plugin

Appium 2.0 安装

  • 升级npm

npm 版本需要大于8.x。

> npm install -g npm
  • 安装appium
> npm install -g appium@next

这是全局的安装方式,如果你正在使用appium 1.x,可以创建一个目录,使用局部安装。

> npm install appium@next
  • 检查版本
> appium --version
2.0.0-beta.43
  • 查看驱动
> appium driver list

✔ Listing available drivers
- uiautomator2 [not installed]
- xcuitest [not installed]
- youiengine [not installed]
- windows [not installed]
- mac [not installed]
- mac2 [not installed]
- espresso [not installed]
- tizen [not installed]
- flutter [not installed]
- safari [not installed]
- gecko [not installed]
  • 安装驱动
appium driver install uiautomator2
  • 安装报告插件
> appium plugin install --source=npm appium-reporter-plugin

appium 2.0 使用

  • 使用插件的方式启动appium
> appium --use-plugins=appium-reporter-plugin
...
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[Appium] Available drivers:
[Appium]   - [email protected] (automationName 'Espresso')
[Appium]   - [email protected] (automationName 'UiAutomator2')
[Appium] Available plugins:
[Appium]   - [email protected]
[Appium]   - [email protected] (ACTIVE)

编写自动规划用例:

# test_sample.py
import unittest
from time import sleep
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy


class TestBBS(unittest.TestCase):

    def setUp(self):
        desired_caps = {
            'deviceName': 'JEF_AN20',
            'automationName': 'UiAutomator2',
            'platformName': 'Android',
            'platformVersion': '10.0',
            'appPackage': 'com.meizu.flyme.flymebbs',
            'appActivity': '.ui.LoadingActivity',
            'noReset': True,
        }

        self.dr = webdriver.Remote(
            command_executor='http://127.0.0.1:4723',
            desired_capabilities=desired_caps)

    def tearDown(self):
        self.dr.quit()

    def test_bbs(self):
        # 定义运行环境
        sleep(5)
        self.dr.find_element(MobileBy.ID, "com.meizu.flyme.flymebbs:id/nw").click()
        sleep(2)
        self.dr.find_element(MobileBy.ID, "com.meizu.flyme.flymebbs:id/nw").send_keys("flyme")
        self.dr.find_element(MobileBy.ID, "com.meizu.flyme.flymebbs:id/o1").click()
        sleep(2)

        title_list = self.dr.find_elements(MobileBy.ID, "com.meizu.flyme.flymebbs:id/a29")
        for title in title_list:
            print(title.text)
            self.assertIn("lyme", title.text)


if __name__ == '__main__':
    unittest.main()
  • 运行测试
> python test_sample.py

问题

  1. appium 服务地址:http://127.0.0.1:4723, 后面不要加:/wd/hub
  2. appium-reporter-plugin 插件从名字看是生成报告的,我们知道测试报告一定是和测试框架绑定的一个概念,事实告诉我没那么简单。

appium-reporter-plugin assumes every test/spec uses new driver session. For commands invoked on the driver session, screenshot and metrics are captured at server side. At the end of the test i.e., before deleting the driver session, driver.setTestInfo(..) should be called to map test information. After all the tests are completed driver.getReport() can be called to fetch the html report and written to file.

时间原因,我也没再去倒腾~!插件地址:

https://github.com/AppiumTestDistribution/appium-reporter-plugin

标签:Appium,插件,plugin,self,appium,installed,beta,2.0
From: https://www.cnblogs.com/fnng/p/16626240.html

相关文章

  • Appium 华为鸿蒙系统ADB无线调试
    1.获取鸿蒙设备信息platformName和platformVersion#在前置参数中#platformName就直接填写Android#platformVersion先便填写一个版本(10、11、12先随便填写一个版......
  • # Ubuntu22.04网卡丢失
    1、首先确保网卡设备名称能看到,看不到,以下步骤无意义;sudolshw-cnetwork结果*-networkDISABLEDdescription:Ethernetinterfaceproduct:......
  • # ubuntu22.04,VMwareTools及共享文件夹问题
    安装VMwaretoolsudoaptinstallopen-vm-tools-desktopopen-vm-tools使用下面的指令可查看共享文件夹是否设置,如果确实设置好了,会输出目录名vmware-hgfsclient#......
  • MxDraw云图平台 2022.08.24更新
     SDK开发包下载地址:https://www.mxdraw.com/ndetail_30187.html1.增加对像扩展数据功能2.增加CADGIS使用功能  https://www.mxdraw3d.com/sample/vuemapbox/?cm......
  • Kruise Rollout v0.2.0 版本发布:支持 Gateway API、StatefulSet 分批发布等能力
    作者:赵明山(立衡)前言KruiseRollout[1]是OpenKruise社区开源的渐进式交付框架。KruiseRollout支持配合流量和实例灰度的金丝雀发布、蓝绿发布、A/BTesting发布,以......
  • 新的开始 2.0
    马上就要开学了呜呜,马上就要变成老年菜鸡选手了,以后再也不能说自己是年轻人了呜呜其实有很多话想说,但是为什么这篇博客这么短呢,因为有人作业还没写完呐qaq初中三年好像......
  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 微软和Canonical联手打造.Net
    微软和Canonical宣布在Ubuntu22.04主机和容器中提供本地.NET服务https://ubuntu.com//blog/install-dotnet-on-ubuntu.NET开发者现在可以通过一个"aptinstall"命令......
  • 论文阅读笔记-MapLite 2.0: Online HD Map Inference Using a Prior SD Map
    MapLite2.0:OnlineHDMapInferenceUsingaPriorSDMapMapLite2.0:使用先前SD地图的在线高清地图推断Abstract部署全自动驾驶汽车一直是工业界和学术界深入研究的......
  • 【ACM】2022.08.21训练赛
    A.连续整数的和【数论】题目描述给出一个正整数N,将N写为若干个连续数字和的形式(长度>=2)。例如N=15,可以写为1+2+3+4+5,也可以写为4+5+6,或7+8。如果......
  • 超市管理系统v2.0
    超市管理系统v2.0比起v1.0增加了用户注册登录的功能(超市管理系统v1.0)并且使用ArrayList改进了代码,减少了代码冗杂。(ArrayList类)下面的v2.0的大概思路。思路流程......