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约定了一套通信协议,采用的是WebDriver的json 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-
'''
Created on //
@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() 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 '' #随便打印的提示信息 if __name__ == '__main__':
unittest.main()
appium+python+eclipse简单编写小示例!的更多相关文章
- python -----一个简单的小程序(监控电脑内存,cpu,硬盘)
一个简单的小程序 用函数实现!~~ 实现: cpu 使用率大于百分之50 时 , C 盘容量不足5 G 时, 内存 低于2G 时. 出现以上其中一种情况,发送自动报警邮件! 主要运用 到了两个 模 ...
- appium+python+unittest+HTMLRunner编写UI自动化测试集
简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以py ...
- selenium,phantomJS,python整合的一个小示例,把某个网页画面整体保存成图片格式。
本篇将使用selenium,phantomJS和python制作的一个示例,把某个网页整体保存为一个图片文件. 简单介绍下,selenium是一个开源的用于测试web程序的工具,当然,如果你要执行一些 ...
- appium基础之简单的小例子
appium环境搭建了,当然也要开始用起来了,记录一下学习的过程 遇到问题 1.The permission to start '.ui.home.view.HomeActivity' activit ...
- appium +python 一个简单的例子
appium 安装和python 安装好后. 1. 启动android模拟器--Genymotion-点击Start 2. 启动appium 3. 运行代码. # -*- ...
- appium+python+eclipse 自动化测试框架构建!
经过几天的慢慢研究,现将所需用的自动化框架进行了构建,在后期的代码编写中,直接在框架中套用编写对应的module.case等即可,以此来简化测试方式,提高代码的编写效率与规范 基本的架构设计流程图,如 ...
- appium+python自动化56-微信小程序自动化(摩拜为例)
前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...
- 利用Python制作简单的小程序:IP查看器
前言 说实话,查看电脑的IP,也挺无聊的,但是够简单,所以就从这里开始吧.IP地址在操作系统里就可以直接查看.但是除了IP地址,我们也想通过IP获取地理地址和网络运营商情况.IP地址和地理地址并没有固 ...
- python学习之----异常处理小示例
网络是十分复杂的.网页数据格式不友好,网站服务器宕机,目标数据的标签找不到,都 是很麻烦的事情.网络数据采集最痛苦的遭遇之一,就是爬虫运行的时候你洗洗睡了,梦 想着明天一早数据就都会采集好放在数据库里 ...
随机推荐
- 对ManualResetEvent和AutoResetEvent的巩固练习
在多线程编程中,最常用到的就是线程同步问题,前段时间开发地址采集服务器,需要携带经纬度到MapAbc中采集后,返回地址,才可以进行下一条经纬度的采集,因为队列处理和解析不是同一个线程,并且是解析经纬度 ...
- FFmpeg and x264 Encoding Guide
https://trac.ffmpeg.org/wiki/Encode/H.264 FFmpeg and H.264 Encoding Guide Contents Constant Rate Fac ...
- mysql高级之编程优化
★编程优化一.字符编码(mysql控制台乱码输出解决:character_set_results='gbk')表/列编码设置 列:alter table 表名 change 列名 列名 数据类型 c ...
- JSF-受管Bean与EL表达式
受管Bean与EL表达式 1)编写Bean:①有一个不带形参的构造方法 ②getXxx.setXxx ③一般要实现io.Serializable接口 2)声明受管Bean:①bean名称为外界访问其属 ...
- VueJs(11)---vue-router(进阶2)
vue-router(进阶2) 上篇文章讲了第一篇vue-router相关文章,文章地址:VueJs(10)---vue-router(进阶1) 一.命名路由 有时候,通过一个名称来标识一个路由显得更 ...
- linux CentOS6.5 yum安装mysql 5.6
1.新开的云服务器,需要检测系统是否自带安装mysql # yum list installed | grep mysql 2.如果发现有系统自带mysql,果断这么干 # yum -y remove ...
- 从数据库读取数据并动态生成easyui tree构结
一. 数据库表结构 二.从后台读取数据库生成easyui tree结构的树 1.TreeNode树结点类(每个结点都包含easyui tree 的基本属性信息) import java.io.Seri ...
- Java 面试知识点解析(二)——高并发编程篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- SQL转化为MapReduce的过程
转载:http://www.cnblogs.com/yaojingang/p/5446310.html 在了解了MapReduce实现SQL基本操作之后,我们来看看Hive是如何将SQL转化为MapR ...
- 自定义完美的ViewPager 真正无限循环的轮播图
网上80%的思路关于Android轮播图无限循环都是不正确的,不是真正意义上的无限循环, 其思路大多是将ViewPager的getCount方法返回值设置为Integer.MAX_VALUE, 然后呢 ...