appnium - CSDN
  • 二、python3使用appnium运行手机上的APP

    千次阅读 2018-09-07 04:30:33
    前言:安装好appium需要的配制,如果这步还没做,可以先看上篇文章 windows和linux是不支持IOS机的,只有MAC才支持,这个大家注意了。这里我使用的是真机,也可以使用模拟机,因为刚学就用真机,后续学到再补充说明...

    前言:安装好appium需要的配制,如果这步还没做,可以先看上篇文章

    windows和linux是不支持IOS机的,只有MAC才支持,这个大家注意了。这里我使用的是真机,也可以使用模拟机,因为刚学就用真机,后续学到再补充说明模拟机的

    下面,就看怎么用appium去运行手机上的程序呢?

    1. android真机

    手机用USB连接上电脑,并打开开发者选项的USB调试(设置---关于手机---点击版本号几次就可以打开开发者选项了)
    

    2. cmd打开命令行

    adb devices 
    

    这里写图片描述
    说明设备已经检测到了

    3. 打开appium,对其进行配制

    a. 点机器人,在capabilities里配制:
        Platform Name:  Android
        Automation Name:    Appium
        PlatformVersion:    选自己手机的android版本号
        Device Name:        自己手机的设备名,可以通过adb devices -l 获取(注意是小写l)
    

    这里写图片描述
    这里写图片描述

    b. 点击设备,看下端口号,一般默认4723不用必,之后就可以点击三角形运行服务就好了
    

    这里写图片描述

    4. 写python3脚本了,不多说,直接showing the code

    from appium import webdriver
    #这里是用来配制服务的,跟appium里是差不多的
    desired_caps = {}
    #设备名:iOS, Android, orFirefoxOS等等
    desired_caps['platformName'] ='Android'
    #手机设备版本,直接看手机设置--关于本机信息里就有
    desired_caps['platformVersion'] ='4.3'
    #设备名称,adb devices -l 查看(小字l),model后的名称,不是adb devices出来的设备号哟
    desired_caps['deviceName'] ='Coolpad_8702'
    #待测试的app的Java package包名称
    desired_caps['appPackage'] ='com.baidu.searchbox'
    #待测试的app的Activity名字。比如MainActivity、.Settings,原生app的话要在前面加个"."
    desired_caps['appActivity'] ='.MainActivity' 
    #启动程序
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    
    PS:说明下怎么获取package名和activity名:
        a.  cmd命令行打开adb shell
            adb shell 
        b. 在手机上打开一会想要操作的APP
        c. 在adb shell中输入以下命令
            dumpsys activity | grep mFocusedActivity
        d. 即可看到包名和活动名
    

    这里写图片描述

    5. 这时候,你可以退出手机上APP,然后运行python3程序了

    当当当当,手机会自动运行并弹出这个APP
    

    参考文章:

    http://www.cnblogs.com/xiaoxi-3-/p/7941253.html
    https://www.cnblogs.com/shuchengxiang/p/7145037.html
    
    展开全文
  • appnium介绍

    千次阅读 2019-01-04 17:36:52
    为什么选择Appium Appium是一个自动化测试开源工具,支持iOS和android平台上的移动原生应用、移动Web应用和混合应用。Appium是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大...

    为什么选择Appium
    Appium是一个自动化测试开源工具,支持iOS和android平台上的移动原生应用、移动Web应用和混合应用。Appium是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。

    • 移动原生应用:是指那些用iOS或者android sdk写的应用;
    • 移动web应用:是指那些使用移动浏览器访问的应用,appium支持iOS的safari和android上的chrome;
    • 混合应用:是指原生代码封装在网页视图(原生代码和web内容交互)。

    Appium的理念
    无需为了自动化,而重新编译或者修改我们的应用;
    不必局限于某种语言或者框架来写和运行测试脚本;
    一个移动自动化的框架不应该在接口上重复造轮子;
    无论精神上,还是名义上,都必须要开源。
    Appium的设计
    Appium的真正的工作引擎是第三方自动化框架,不需要在本身应用里植入appium特定或者第三方代码。
    iOS:苹果的UI Automator框架
    Android 4.2+:Google的UI Automator框架
    Android 2.3+:Google的UI Instrumentation框架
    Appium把这些第三方框架封装成一套API,即WebDriver API。
    Appium扩充了WebDriver的协议,在原有的基础上添加自动化相关的API方法。
    Appium的相关概念
    C/S架构
    Appium的核心是一个Web服务器,它提供了一套REST的接口。它接收到客户端的连接、监听的命令,接着在移动设备上执行这些命令,然后将执行的结果放在HTTP响应中返还给客户端。
    Session
    自动化总是在一个session的上下文中运行,客户端初始化一个和服务端交互的session。客户端发送一个附有desired capabilities的JSON对象参数的POST请求“/session”给服务器,服务端就会开始一个自动话的session,然后返回一个session ID,客户端拿到这个ID后就用这个ID发送后续的命令。
    Desired Capabilities
    Desired Capabilities是一些键值对。客户端将这些键值对发给服务端,告诉服务端我们想要启动怎样的自动化session。
    Appium server
    Appium server是用nodejs写的,我们可以源码编译或者从NPM直接安装。
    Appium服务端
    Appium服务端有很多语言库Java,Ruby,Python,PHP,JavaScript,C#等,这些库实现了对WebDriver协议的扩展。使用Appium的时候,只需使用这些库代替常规的WebDriver库就可以了。
    Appium.app,Appium.exe
    Appium提供了GUI封装的Appium server下载,它封装了运行Appium server的所有依赖元素。而且这个封装包含了一个Inspector工具,可以让使用者检查应用的界面元素层级。
    Appium的环境部署
    详细查看Appium-安装篇,Appium-Android开发环境。
    提示:Appium Android系统运行要求:Java 7及以后版本,Android SDK API17以上版本,Android虚拟设备或者真实手机设备。

    作者:zytthappy
    来源:CSDN
    原文:https://blog.csdn.net/zytthappy/article/details/79686354
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 之前已经搭好了appnium和安卓环境,本章介绍下基于模拟器实现自动化测试,会引入3个知识:1、安卓模拟器的对接这套自动化环境的相关配置;2、利用安卓工具uiautomatorviewer定位元素;3、脚本编写。 2>安卓...

    1>前言

    之前已经搭好了appnium和安卓环境,本章介绍下基于模拟器实现自动化测试,会引入3个知识:1、安卓模拟器的对接这套自动化环境的相关配置;2、利用安卓工具uiautomatorviewer定位元素;3、脚本编写。

    2>安卓模拟器

    下载一个夜神模拟器,安装并开启,在cmd命令输入adb devices,如果有检测到设备,如下,那就进入步骤3。

    如果没有设备,显示如下,很明显有个server和client不匹配的提示,就改下配置文件,具体步骤如下。

    把夜神模拟器安卓目录下面的.../Nox/bin/下面的 adb.exe 和nox_adb.exe,拷贝至安卓环境目录

    .../sdk/paltform-tools/目录下,会有替换和覆盖选项,替换就是,必要的话可以先备份下之前的文件。

    这个时候,再执行 adb connect 127.0.0.1:62001,就可以了。

    3>要编码,肯定要先想办法获取元素,其实是跟之前selenium自动化类似,也是那些定位的方法,并且app还多了一些,以后介绍吧,现在看下这里是怎么获取到手机/模拟器上那些app各种元素的位置信息的。

    打开安卓目录下,...\sdk\tools目录下面的uiautomatorviewer.bat文件,

    如上,左上角图标应该就是获取手机上当前页面的“元素”/app的信息,这两个属性 resource-id和class就是他对应的属性,可以通过这些属性来定位元素。

    4>获取到元素之后,就开始编码吧

    如上,一些需要填写的参数及查看参数的方式,定位元素的方式和操作语法,是不是跟selenium一样呢

    接下,开启appnium,模拟器肯定也要开启,那么,执行这个脚本,它就会去操作了。

    效果如下(打开淘宝,搜索框输入 hahaha.. ,再点击搜索)

    4>第一个实现脚本就算完成了,从无到有嘛,先理清楚整套工具的运转流程,原理啥的,接下来再丰富它,学习对应的语法,甚至框架等。

    其实上面脚本有一个点还说明,代码的10和11行,这个apk的包名和appActivity参数去哪里获取,这里我急着看代码实现,直接依照样例安装了淘宝APP,才填入这几个值的,看了下好像也是要安装一个工具去识别下,很简单,以后有时间再补充这块吧,

     

    展开全文
  • Appnium实现简单登录

    千次阅读 2016-10-17 15:04:03
    public class DMSLogin { AndroidDriver<WebElement> driver; WebElement et_pwd, et_user, bt_login, et_main, longPress_item,add_bookmark,remove_bookmark,tag_bookmark,btn_sure; TouchAction actio
    public class SLogin {
        AndroidDriver<WebElement> driver;
        WebElement et_pwd, et_user, bt_login, et_main, longPress_item,add_bookmark,remove_bookmark,tag_bookmark,btn_sure;
        TouchAction action_item;
    
        @Before
        public void setup() throws Exception {
    
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability("deviceName", "Android Device");
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("platformVersion", "4.4.2");
            capabilities.setCapability("appPackage", "news");
            capabilities.setCapability("appActivity",
                    "news.view.activity.StartActivity");
            URL url = new URL(URLlist.SERVER_URL);
            driver = new AndroidDriver<WebElement>(url, capabilities);
            driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    
        }
    
        @Test
        public void testLogin() throws Exception {
            et_user = AppniumFindElementUtil.findElement(driver,"ByText",Constants.user_txt);
            et_user.sendKeys(Constants.userText);
            et_pwd=AppniumFindElementUtil.findElement(driver, "ById",Constants.pwd_ID);
            et_pwd.sendKeys(Constants.pwdText);
    //Login
            bt_login = AppniumFindElementUtil.findElement(driver,"ByText",Constants.login_txt);
            bt_login.click();
            driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
    
    //Home  
            et_main = AppniumFindElementUtil.findElement(driver,"ById",Constants.title_ID);
            driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
            Assert.assertEquals("Login successfully", "DMS News", et_main.getText());
            driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    
            SwipeUtil.swipeToUp(driver, 3);
            driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);        
            longPress_item =  AppniumFindElementUtil.findElement(driver,"ById",Constants.popUpWindow_ID);
            action_item = new TouchAction(driver);
            action_item.longPress(longPress_item).perform();
            driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    
    //Add bookmark
            add_bookmark=AppniumFindElementUtil.findElement(driver,"ByText",Constants.add_bookmark_txt);
    
            btn_sure=AppniumFindElementUtil.findElement(driver,"ByText",Constants.sure_txt);
            btn_sure.click();
            Thread.sleep(5000);
    //      TODO
    //      Assert.assertEquals(expected, actual);
    
            //长按item
                /*  List<WebElement> newsList = driver.findElements(By.id(Constants.popUpWindow_ID));
                    int n = newsList.size();
                    for(int i=0;i<n;i++)
                    {
                    ( newsList.get(i)).click();
    
                    Thread.sleep(3000);
                    }*/
        }
    
        @After
        public void tearDown() {
             if (driver != null) {
                    driver.quit();
                }
        }
    }
    

    Constants如下:

    public class Constants {
    
        public static String user_txt="new UiSelector().text(\"Username\")";
        public static String pwd_ID="news:id/login_pass";
        public static String login_txt="new UiSelector().text(\"Login\")";
        public static String title_ID="news:id/main_title";
        public static String popUpWindow_ID="news:id/item_img";
        public static String tag_bookmark_ID="news:id/rb_book";
        public static String add_bookmark_txt="new UiSelector().text(\"Add bookmark\")";
        public static String remove_bookmark_txt="new UiSelector().text(\"Remove bookmark\")";
        public static String sure_txt="new UiSelector().text(\"Ok\")";
    
    
        public static String userText = "admin";
        public static String pwdText = "user";
    }
    
    展开全文
  • appnium安装

    千次阅读 2019-01-11 17:30:10
    web自动化测试的路线是这样的:编程语言基础—&gt;测试框架—&gt;webdriver API—&gt;开发自动化测试项目。 移动自动化的测试的路线要长一些:编程语言基础---&gt;测试框架---&...
  • APPnium+PYthon对安卓APP进行自动化测试

    万次阅读 2019-01-18 19:40:45
    测试环境搭建 需要用到的软件如下: jdk-8u121-window(32位的就下载32位的,64位的就下载64位的)。 2.Android-sdk_r24.3.4-windows(下载这个adt-bundle-windows-x86-20140624) 3.Python:(V3.6也可以) ...
  • Appnium学习之一(环境搭建)

    千次阅读 2018-12-20 15:48:28
    selenium之前自己接触过,页拿着公司项目练过手,但是appnium还未接触,所以今天准备开始学习appniumappnium环境搭建比较复杂,但是网上有完整教程,所以就不写了,直接转载吧,写的还是很完整的! appium可以...
  • appnium基本使用

    千次阅读 2019-03-05 16:16:06
    查看设备名: adb devices -l 具体点:https://blog.csdn.net/lollipop666/article/details/82480403 然后在看一下这篇文章https://www.cnblogs.com/shuchengxiang/p/7145037.html 还有这...
  • appnium总结

    2020-07-30 23:30:07
    appnium使用过程中的总结,包括安装配置,基本使用方法与技巧等
  • appnium连接夜神模拟器

    千次阅读 2018-08-26 22:21:31
    本来想使用安卓的原生模拟器,结果一直出... 将安卓模拟器与appnium进行连接:  https://blog.csdn.net/jixiangrurui/article/details/79140756  https://www.cnblogs.com/my-blogs-for-everone/p/7751596.htm...
  • MitmProxy+APPnium安装使用指导手册 1、环境搭建 1.1、环境准备 Windows 10版本 64位系统 jdk1.6.0 (64位) android-sdk_r24.3.4-windows Node.js appium .net framework Appium-Python-Client mitmproxy 1.2、...
  • 在使用appnium 测试app的内嵌H5页面时,发现定位不到里面的元素,它是被一个大的webview所包裹,需要先切换进webview中 ,然后就像测试web端一样定位元素,才能测试,但在使用contexts方法获取上下文时,发现只能...
  • Appnium环境搭建和定位

    千次阅读 2018-12-09 17:57:05
    Python+Appnium移动端自动化 1、环境搭建 https://nodejs.org/en/下载nodejs https://bitbucket.org/appium/appium.app/downloads/ http://dl.google.com/android/android-sdk_r23.0.2-windows.zip 下载SDK,...
  • Appnium-Java 代码测试流程 创建 DesiredCapabilities 对象 配置信息表(设备名、设备版本号、平台类型、包名、Activity名) 创建AndroidDriver 对象,加载appnium-java驱动 建立driver 对象连接(URL,...
  • APPNIUM安装
  • 一.准备条件: 实现逻辑:Test Script ——>Appnium server——>UI Automator(adb,etc,苹果XCTest)——>...2.安装appnium server(基于js开发的)——Appnium Desktop 3.安装Android SDK(Appni
  • python + appnium 做android自动化测试

    千次阅读 2017-07-13 17:03:18
    环境准备: android模拟器:androidstudio 下载 python python开发工具PyCharm 下载地址: ...node.js 环境 chrome浏览器 appnium 下载: http://appium.io/ api: https://testerhome.com/to
  • 本篇来源于:虫师的博客,原文... Appnium官方访问地址为:http://appium.io/,可访问查看关于Appnium的相关资料; 根据官网提供的安装步骤: > brew install node # get node.js > npm install -g appiu...
  • appnium做app自动化时,需要用到以下jar包: java-client-5.0.0-sources.jar java-client-5.0.0.jar selenium-java-3.9.0.jar selenium-server-standalone-2.53.0.jar selenium-java-3.4.0.zip 接下来是...
  • 1)启动appnium ,点击start ,进入页面 2)连接手机,这里建议使用android 9.0 版本以下手机,连接手机后,设置为usb调试模式。 3)在命令窗口输入 adb devices ,可以看到连接的手机。 4)启动...
1 2 3 4 5 ... 20
收藏数 1,192
精华内容 476
热门标签
关键字:

appnium