一文3500字手把手教你基于Android系统的自动化环境搭建

 01、测试环境搭建

1.appium简介

Appium是一个开源的自动化测试框架使用本机,混合动力 和移动web应用程序。它使iOS、Android和Windows应用程序使用WebDriver协议

官网:http://appium.io/

2.下载Appium

点击官网的Download Appium自动下载(最新版本)

其他版本:https://bitbucket.org/appium/appium.app/downloads/

百度盘下载:http://pan.baidu.com/s/1jGvAISu

3. 安装node.js

官网提示先装node.js,https://nodejs.org/en/下载node.js。选择的是Windows7(32位),下载后点击安装,默认安装就可以。

安装:

命令行安装:

npm install -g appium安装会比较慢,但是官方推荐使用这个

前面我们下载完appium的文件,可以直接安装

会提示缺少.NET Framework ,需要下载这个组件就可以,因为 Appium是由.NET 开发的,所以,它会依赖 .NET framework相关组件

下载.net framework ,点击下载安装就可以

4.启动 appium

appium客户端安装成功

使用 appium:

Android Settings点击左上角的第一个机器人图标

点击Appium左上角的第二个齿轮图标则弹出 General Settings 窗口

启动 appium服务

安装Android环境

安装android adt & SDK

SDK Manager 安装模拟器

使用 Windows 命令行输入 adb 查看是否配置成功,成功后输入 appium-doctor,检查 Appium环境

如果出现“All Checks were successful”的提示,证明 appium环境配置成功。

安装 python3

下载自己想要的版本,笔者的是 python3.5的版本,默认安装就行,安装成功后,将 python加入环境变量,在命令行输入 python验证 python环境是否成功。

官网:https://www.python.org/downloads/

安装成功后,使用命令行安装:

pip install Appium-Python-Client安装python的Appium库。在文件使用 from appium import webdriver成功即安装成功。

下载 HTMLTestRunner.py(生成测试报告)

python3的版本:

http://download.csdn.net/detail/qq_26664581/9439036

或者 http://www.cnblogs.com/sunshishi/p/4569159.html

复制下来保存为 HTMLTestRunner.py,放在安装目录的 lib下

在文件使用 import HTMLTestRunner成功即配置成功

python语言客户端库以及 api详解(Android)

github:https://github.com/appium/python-client

github 已经把使用方法告诉大家,但是是英文的,可以自己整理一下。

02、元素定位(Android)

Uiautomatorview

hierarchyviewr

Inspector

Uiautomatorviewer安卓 sdk自带,根据个人习惯,本人以 Uiautomatorviewer为例,使用方式差不多。

案例:在手机上点开一个应用(qq 为例):

稍后点击界面上的登录后,就可以根据 Node Detail内容来定位元素

App包名:使用 APK helper查看Activiy 名称

hierarchyviewer查看

那么到此,环境搭建,api,元素定位等都有所了解,那么我们接下来就是编写脚本。下面给大家看一个脚本

from appium import webdriver    #导入webdriver

import time,unittest,HTMLTestRunner    #导入库

class Testlogin(unittest.TestCase):

def setUp(self):#初始化

    self.desired_caps={}

    self.desired_caps['platformName'] = 'Android'

    self.desired_caps['deviceName']='a6969'

    self.desired_caps['preformVersion']='5.0.2'

    self.desired_caps['appPackage'] ='com.tencent.mobileqq'

    self.desired_caps['appActivity']='.activity.SplashActivity'

    #启动 app

    self.driver=webdriver.Remote('http://localhost:4723/wd/hub', self.desired_caps)

    time.sleep(2)

def tearDown(self):#还原测试环境

    self.driver.find_element_by_id('com.tencent.mobileqq:id/conversation_head').click()

    self.driver.find_element_by_id('com.tencent.mobileqq:id/settings').click()

    self.driver.find_element_by_id('com.tencent.mobileqq:id/account_switch').click()

    self.driver.find_element_by_id('com.tencent.mobileqq:id/logoutBtn').click()

    self.driver.find_element_by_id('com.tencent.mobileqq:id/dialogRightBtn').click()

    self.driver.quit()

def testLogin1(self):#测试用例

    #登录,定位方式 id

    self.driver.find_element_by_id('com.tencent.mobileqq:id/btn_login').click()

    time.sleep(2)

    me=self.driver.find_element_by_android_uiautomator('new UiSelector().text("QQ号/手机号/邮箱")')#定位

    输入 qq号,使用 uiautomator定位

    me.clear()#输入框输入前最好先清空下

    me.send_keys('319197149')

    password=self.driver.find_element_by_id('com.tencent.mobileqq:id/password')

    password.clear()

    password.send_keys('lileilei.930423')

    self.driver.find_element_by_id('com.tencent.mobileqq:id/login').click()#点击登录

    m=self.driver.find_element_by_id('com.tencent.mobileqq:id/conversation_head')

    if m is not None:

          print('login is sucess')

    else:

          print('login is Flase')

          print(self.driver.find_element_by_id('com.tencent.mobileqq:id/dialogText').text)

if __name__ == '__main__':

    suiteTest = unittest.TestSuite()

    suiteTest.addTest(Testlogin("testLogin1"))

    now=time.strftime('%Y-%m%d',time.localtime(time.time()))

    report_dir= r'%s.html'%now

    re_open= open(report_dir,'wb')

    runner=HTMLTestRunner.HTMLTestRunner(stream=re_open,

    title='QQ测试',description='测试结果')

runner.run(suiteTest)

这是一个完整简单的测试脚本,最后生成测试报告。到此一个完整的测试就完成了

技能提升END资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

关注我的微信公众号:【程序员小濠】即可获取这份资料了!

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:779450660 大家一起讨论交流,里面也有各种软件测试资料和技术交流。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容