Appium 作业 1

根据课堂视频,安装搭建Appium运行环境,并运行示例代码

安装Appium Python Client 包

安装Appium Python Client 包的命令

pip install Appium-Python-Client

安装 Appium Server

下载安装Appium Desktop的安装包, 下载地址 https://github.com/appium/appium-desktop/releases/latest 下载扩展名为.exe的包

安装 Android Studio

官方中文网站 https://developer.android.google.cn/studio/archive.html 选择2.3.3 版本,包含了sdk的安装包 Windows IDE bundle with SDK (64-bit)

特别注意,安装程序要求路径中最好不要有空格。

安装JDK

到 oracle 官方网站下载JDK 1.8 的安装包,进行安装

安装安卓模拟器

先试试android studio里面自带的模拟器

打开 studio,创建一个项目,通过tools - android - AVD Manager菜单创建一个安卓模拟设备


如果不行,可以试试Genymotion,安装过程参考 https://github.com/jcyrss/songqin-testdev/issues/3

运行自动化测试

  • 运行虚拟机,下载开发者头条应用,http://toutiao.io/s/apk 
    安装到虚拟机中并运行;
    注册一个账号
  • 根据课堂教学视频,运行Appium Server,并设置、启动服务
  • 下载自动化脚本https://github.com/jcyrss/songqin-testdev/blob/master/appium/src/lesson1/toutiao_login.py 修改其中用户名,密码为你注册的账号,运行脚本完成一个自动登录功能
    • dfgdfg

      Appium 作业 2

      • 到如下网址下载 多多计算器

      https://github.com/jcyrss/songqin-testdev/raw/master/appium/uploads/duoduoCalculators.apk

      • 用 aapt.exe 命令查看 apk包的 appPackage 信息和 主 Activity 信息
      • 用 UIAutomator Viewer 查看应用界面元素信息
      • 编写python程序,完成一个 计算 3+9 ,结果 再乘以5 的自动化功能. 最后判断计算结果是否为60,如果是,测试通过;否则测试不通过
      • # coding=utf8from appium import webdriver
        import time,tracebackdesired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '6'
        desired_caps['deviceName'] = 'test'
        desired_caps['app'] = r'd:\apk\duoduoCalculators.apk'
        desired_caps['appPackage'] = 'com.ibox.calculators'
        desired_caps['appActivity'] = '.SplashActivity'
        desired_caps['unicodeKeyboard']  = True
        desired_caps['noReset'] = True
        desired_caps['newCommandTimeout'] = 6000
        #启动Remote RPC
        driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        driver.implicitly_wait(10)try:# -----------------num3 = driver.find_element_by_id("com.ibox.calculators:id/digit3")num5 = driver.find_element_by_id("com.ibox.calculators:id/digit5")num9 = driver.find_element_by_id("com.ibox.calculators:id/digit9")plus = driver.find_element_by_id("com.ibox.calculators:id/plus")mul = driver.find_element_by_id("com.ibox.calculators:id/mul")equal = driver.find_element_by_id("com.ibox.calculators:id/equal")num3.click()plus.click()num9.click()equal.click()mul.click()num5.click()equal.click()# 检查结果,需要我们去找结果对应的界面元素,发现是下面这个TextView# 研究发现没有特点,大家想想我们该怎么办# 可以看看父节点有没有唯一标识,发现 父节点是有id的,# 就可以怎么样?# 先查找父节点,# 再根据父节点元素 调用 find element 就是在父节点的范围内 查找retLayout = driver.find_element_by_id('com.ibox.calculators:id/cv')retTvs     = retLayout.find_elements_by_class_name('android.widget.TextView')retStr = retTvs[1].textprint(retStr)if retStr == '60':print('pass')else:print('fail')# -----------------except:print(traceback.format_exc())input('**** Press to quit..')
        driver.quit()
        

          

        Appium 作业 3

        • 找到一个安卓设备(没有可以向朋友借用一下),将其连接到电脑上,根据课堂视频指导,确保可以被命令 adb devices -l 检测到

        • 安装多多计算器(怎么装?自己想办法)

        • 练习用 Appium Desktop中的 inspector查看界面。

        • 将上次作业,用xpath方式定位元素,再实现一遍

      • # coding=utf8from appium import webdriver
        import time,tracebackdesired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '7.1'  #
        desired_caps['deviceName'] = 'test'
        desired_caps['app'] = r'd:\apk\duoduoCalculators.apk'
        desired_caps['appPackage'] = 'com.ibox.calculators' #
        desired_caps['appActivity'] = 'com.ibox.calculators.SplashActivity'
        desired_caps['unicodeKeyboard']  = True
        desired_caps['noReset'] = True
        desired_caps['newCommandTimeout'] = 6000driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        driver.implicitly_wait(10)try:# -----------------num3 = driver.find_element_by_id('com.ibox.calculators:id/digit3')num9 = driver.find_element_by_id('com.ibox.calculators:id/digit9')num5 = driver.find_element_by_id('com.ibox.calculators:id/digit5')plus = driver.find_element_by_id('com.ibox.calculators:id/plus')equal = driver.find_element_by_id('com.ibox.calculators:id/equal')mul  = driver.find_element_by_id('com.ibox.calculators:id/mul')num3.click()plus.click()num9.click()equal.click()mul.click()num5.click()equal.click()# ----------------------xpath = '//*[@resource-id="com.ibox.calculators:id/cv"]/android.widget.TextView[2]'ele = driver.find_element_by_xpath(xpath)retStr = ele.text# ----------------------print(retStr)if retStr == '60':print('pass')else:print('fail!')# -----------------except:print(traceback.format_exc())input('**** Press to quit..')
        driver.quit()
        

          

        Appium 作业 4

        • 找到一个安卓设备(没有可以向朋友借用一下)

        • 到华为官网 http://app.hicloud.com/ ,微信扫码右侧二维码,安装华为应用市场apk,

          如果手机安装后不能打开的,可以点击这里下载老版本安装,老版本安装运行后,不要选择更新到新版本。

        • 进入排行页面,滚动到 口碑最佳 部分

        • 打印出所有 口碑最佳 部分的5个应用名称

      • # coding=utf8
        from appium import webdriver
        import time
        import tracebackdesired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '6'
        desired_caps['deviceName'] = 'test'
        desired_caps['app'] = r'd:\apk\HiSpace.apk'
        desired_caps['appPackage'] = 'com.huawei.appmarket'  #app package名,指定了要运行的app
        desired_caps['appActivity'] = 'com.huawei.appmarket.MainActivity' #app默认Activity
        desired_caps['unicodeKeyboard']  = True
        desired_caps['noReset'] = True
        desired_caps['newCommandTimeout'] = 6000
        driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #启动Remote RPC
        driver.implicitly_wait(10)try:# ------------------------------javaCode = 'new UiSelector().resourceId("com.huawei.appmarket:id/tabLayout").childSelector(new UiSelector().text("排行") )'driver.find_element_by_android_uiautomator(javaCode).click()javaCode = 'new UiSelector().text("总榜").resourceId("com.huawei.appmarket:id/ItemTitle")'ele = driver.find_element_by_android_uiautomator(javaCode)destPosY = ele.location['y']xPos = ele.location['x']driver.implicitly_wait(0.5)while True:driver.swipe(xPos,destPosY,xPos,destPosY-100, 1000)javaCode = 'new UiSelector().text("口碑最佳").resourceId("com.huawei.appmarket:id/ItemTitle")'eles = driver.find_elements_by_android_uiautomator(javaCode)if not eles:continuedriver.swipe(xPos,eles[0].location['y'],xPos,destPosY,3000)breakdriver.implicitly_wait(10)eles = driver.find_elements_by_class_name("android.widget.TextView")tvs = []for ele in eles:tvs.append(ele.text)tvsStr = '|||'.join(tvs)pos1 = tvsStr.find('口碑最佳|||')targetStr = tvsStr[pos1:]def getName(No): #'1', '2'tp1 = targetStr.find(No+'|||')  + 4tp2 = targetStr.find('|||',tp1)return targetStr[tp1:tp2]print('================ finally ++++++++++++ \n')for i in range(1,6):print(getName(str(i)))# ------------------------------except:print(traceback.format_exc())input('**** Press to quit..')
        driver.quit()
        

          

        Appium 作业 5

        • 安装开发者头条应用
        • 打开该应用,在阅读标签页中,点击 精选文章的第一篇,验证确实能打开同名文章
        • 按返回键, 验证能够正确返回 阅读标签页
      • # coding=utf8from appium import webdriver
        import time,tracebackdesired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '5.1'
        desired_caps['deviceName'] = 'test'
        desired_caps['app'] = r'e:\apk\toutiao.apk'
        desired_caps['appPackage'] = 'io.manong.developerdaily'
        desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'
        desired_caps['unicodeKeyboard']  = True
        desired_caps['noReset'] = True
        desired_caps['newCommandTimeout'] = 6000
        #启动Remote RPC
        driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        print driver.session_id
        driver.implicitly_wait(10)try:# -----------------# 用下面的表达式,也可以用xpathcode = u'new UiSelector().resourceId("io.manong.developerdaily:id/btn_item").instance(0).childSelector(new UiSelector().className("android.widget.TextView"))'ele1 = driver.find_element_by_android_uiautomator(code)text1 = ele1.textprint text1ele1.click()time.sleep(2)ele2 = driver.find_element_by_id('io.manong.developerdaily:id/tv_title')text2 = ele2.textprint text2if text2 == text1:print 'pass'else:print 'fail'driver.press_keycode(4)#  检查是否回到刚才的页面ele2 = driver.find_elements_by_id('io.manong.developerdaily:id/tab_bar_plus')if ele2:print 'we return back'# -----------------except:print traceback.format_exc()driver.quit()
        

          

转载于:https://www.cnblogs.com/xiao-qing/p/9230905.html

Appnuim作业题相关推荐

  1. 交大c语言第二次作业答案,C语言程序设计第二次作业题及答案.doc

    C语言程序设计第二次作业题及答案 第2次作业一.单项选择题(本大题共60分,共 20 小题,每小题 3 分)1. #inlucde 是一条(?? ).A. 文件包含预处理命令B. 宏定义预处理语句C. ...

  2. NYOJ 201 作业题

    作业题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过程, ...

  3. NYOJ 201 作业题 动态规划

    作业题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过程, ...

  4. 网上农大计算机应用基础在线作业1答案,东北农业大学网络教育学院计算机应用基础网上作业题及答案.doc...

    . . 东北农业大学网络教育学院 计算机应用基础网上作业题及参考答案 第二章 Windows7操作系统及应用 选择题 1.计算机启动时,首先同用户打交道的软件是 在它的帮助下才得以方便.有效地调用系统 ...

  5. 9076什么意思_(9076)《人力资源开发与管理》网上作业题及答案

    下载word有问题请添加微信号:xuecool-com或QQ:370150219处理(尽可能给您提供完整文档),感谢您的支持与谅解. 1:[单选题] 生产工人参与计划制定,自行决定生产目标.作业程序. ...

  6. matlab作业5答案,《matlab作业题答案》.doc

    <matlab作业题答案>.doc MATLAB作业题答案 第一章MATLAB概述 选择题 (1)在MATLAB中( C )用于括住字符串. A., B.: C.'' D."&q ...

  7. 简述流水线基本工作原理 计算机,自动化专业计算机技术基础作业题(50题)

    自动化专业计算机技术基础作业题(50题) (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 江西理工大学2012级自动化专业作业题1. 简 ...

  8. nyoj 作业题 dp

    作业题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 小白同学这学期有一门课程叫做<数值计算方法>,这是一门有效使用数字计算机求数学问题近似解的方法与过程, ...

  9. c语言课本引言课后答案,C语言基础(01-引言及预备知识)作业题

    作业题: 1.下列程序中格式错在( )处. A. main() B. int a,b,z; C. a=2:b=3; D. z=a+b; 分析:A,B,D 没有错误. C 中在a=2后面应该是分号而不应 ...

最新文章

  1. Github的创建及使用
  2. JAVA单字节读取,java资料读取。(单字节读取和按行读取读取)
  3. 茶苑机器人怎么看出来_小儿脑瘫怎么看出来?出现4个异常,该早点去看医生...
  4. 日志汇总:logging、logger
  5. ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)
  6. MySQL存储过程语句(if,while)的使用
  7. OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析
  8. 绑定图片路径处理img 或asp:image
  9. [转]HTTP消息格式
  10. I/O多路复用之epoll实战
  11. Matlab计算空间权重矩阵(地理距离和经济地理距离)
  12. Pymol教程--Caver插件 研究蛋白通道
  13. swfupload ajax,swfupload ajax无刷新上传图片实例代码
  14. 微软雅黑和consolas混合字体_你用的字体得到授权了吗,小心巨额索赔!
  15. 经典DP题目-滑雪问题
  16. 【机器学习】李宏毅-食物图像分类器
  17. ffmpeg开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer)
  18. Paul Graham:为什么在经济危机中创业?
  19. 用变量定义数组的几个方法
  20. 榕树说技术支持(Rong Zhiyun technical support)

热门文章

  1. java三国赵云游戏副本_三国乱世手游轻松拿下赵云副本讲解
  2. PLMN selection
  3. 360安全备份 android,手机里的数据怎么备份 360安全卫士备份手机数据图解
  4. 农牧业信息化管理现状
  5. 前程无忧51job爬虫利用selenium爬取岗位信息-2021年10月29日
  6. 奇异矩阵 singular matrix
  7. eureka上被down掉的服务手动up
  8. 【安全资讯】“微信清粉”被爆非法获取用户信息,用户付费后,个人信息被出售
  9. JAVA实时运算_实时计算知多少?
  10. de1-soc培训教材记录