zoukankan      html  css  js  c++  java
  • appium+python+eclipse简单编写小示例!

    Appium简单介绍!

      一、appium分成3个部分来看,分别为:appium服务端、appium客户端、设备端

      1、设备端

        WebDriverAgentRunner 的应用,以后简称 WDA,这个应用的作用就是对你的目标 App 进行测试。

        setUp方法中主要做一些测试前的准备,tearDown方法是测试结束后的清理工作,所有的测试函数都必须以 test 开头,如下文提到的test_appium_01

      2、appium服务端

        appium服务端是一个node.js应用,这个应用跑在电脑上,用语和WDA进行通信,涉及到相关的测试操作,因此appium和WDA约定了一套通信协议,采用的是WebDriverjson wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架

      3、appium客户端

        appium指的是我们写的测试代码,Appium 支持多种测试语言的根本原因在于,WebDriver 协议为各种主流语言提供了一个第三方库,能够方便的把测试脚本转化成符合 WebDriver 规范的 URL

      二、appium的运行原理

        提供各个语言的第三方库,将测试脚本转化成 WebDriver 协议下的 URL,通过 Node 服务发送到各个平台上的代理工具,代理工具在运行过程中不断接收 URL,根据 WebDriver 协议解析出要执行的操作,然后调用各个平台上的原生测试框架完成测试,再将测试结果返回给 Node 服务器。

    运行代码之前的注意点:

      1、相关的环境配置已经ok(eclipse中安装pydev)

      2、打开appium.exe,进行如下操作

            

      3、webdriver.Remote中的链接填写内容,查找方式如下:

         

    贴出代码如下:

      代码的内容介绍:只是进行简单的“打开短信应用,并且退出”,主要是为了验证appium的环境是否都ok

    # coding=UTF-8
    '''
    Created on 2017/6/13
    @author: SYW
    '''
    
    from Test.logs.logs import logging   #自己封装的log打印方法
    from appium import webdriver
    import unittest
    from time import sleep
    
    class Test_appium(unittest.TestCase):
        
        def setUp(self):
            logging.info("Test_appium.....setUp")  #提示信息,无log信息的,可将此删除
            desired_cups = {}
            desired_cups['platformName'] = 'Android'
            desired_cups['platformVersion'] = '4.4.2'
            desired_cups['deviceName'] = '0123456789ABCDEF'   #手机的串号,手机usb连接电脑,使用adb devices即可查看此串号,复制粘贴此处即可
            desired_cups['appPackage']= 'com.android.mms'  #打开应用的包名
            desired_cups['appActivity'] = 'com.android.mms.ui.ConversationList'   #应用的活动名称
            self.device = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_cups)   #appium的服务,查看地方:打开已经安装的appium,点击“设置”查看端口
            sleep(2)
            
        def tearDown(self):
            unittest.TestCase.tearDown(self)
            self.device.quit()  #退出App
            
        def test_appium_01(self):
            '''打开短信app'''
            self.device.start_activity('com.android.mms', 'com.android.mms.ui.ConversationList')
            print '00000000000'  #随便打印的提示信息
            
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    ORACLE通过netca配置监听遇到 TNS04415错误
    图说计算机编程简史
    关于在VS2008以下版本的MFC程序使用VS 2008 FeaturePack出现内存泄露的理解
    对话框的OnPaint函数的两种写法的区别
    Hibernate 3.6.0 Beta1
    Hibernate 3.6.0 Beta1
    Maven 与 Checkstyle
    NetBeans 时事通讯(刊号 # 110 Jul 21, 2010)
    NetBeans 时事通讯(刊号 # 111 Jul 28, 2010)
    教育哲学的碰撞
  • 原文地址:https://www.cnblogs.com/syw20170419/p/7002506.html
Copyright © 2011-2022 走看看