51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1560|回复: 0
打印 上一主题 下一主题

Appium学习第一个测试脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-9 15:22:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Appium学习的点点滴滴

环境安装(WINDOWS)
  1. 1 安装Nodejs

  2. 下载nodejs安装包(http://nodejs.org/download/)安装

  3. 测试安装是否成功:运行cmd,输入node -v

  4. 2 安装android的SKD
  5. 安装android的sdk包,(http://developer.android.com/sdk/index.html),运行依赖 sdk中的 'android'工具。并确保你安装了Level17或以上的版本 api。

  6. 设置ANDROID_HOME 系统变量为你的 Android SDK 路径,并把tools和platform-tools两个目录加入到系统的 Path路径里。

  7.          变量: ANDROID_HOME

  8.            值: D:\android-sdk

  9.          设置: Path

  10.            值: %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

  11. 3 安装Apache Ant
  12. 安装Apache Ant(http://ant.apache.org/bindownload.cgi)

  13. 解压缩文件夹,并把路径加入环境变量。

  14.          变量: ANT_HOME

  15.            值: D:\apache-ant-1.8.2

  16.          设置: Path

  17.            值: %ANT_HOME%\bin

  18. 测试ant环境安装成功:运行cmd,输入ant,如果没有指定build.xml就会输出:

  19. Buildfile: build.xml does notexist!

  20. Build failed

  21. 4 安装JDK
  22. 安装JDK

  23. 下载解压文件夹 并且设置 M2HOME 和 M2 环境变量,把 M2 环境变量添加到你的系统PATH变量中。

  24.          变量: JAVA_HOME

  25.            值: C:\Program Files (x86)\Java\jdk1.7.0_01

  26.          变量: classpath

  27.            值: %JAVA_HOME%\lib;

  28.          设置: Path

  29.            值: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

  30.    测试环境安装成功:运行cmd,输入java -version 如果成功则出现java信息:

  31. 5 安装Apache Maven
  32. 安装Maven(http://maven.apache.org/download.cgi)

  33. 下载解压文件夹 并且设置 M2HOME 和 M2 环境变量,把 M2 环境变量添加到你的系统PATH变量中。

  34.          变量: MAVEN_HOME

  35.            值: D:\apache-maven-3.1.1

  36.          设置: Path:

  37.            值: %MAVEN_HOME%\bin

  38.    测试环境安装成功:运行cmd,输入mvn -v 如果成功则出现maven信息:



  39. 6 npm安装appium(如果npm安装失败可以选择7)
  40. 使用npm安装appium。

  41. 在cmd使用命令npm install -g appium 下在appium(整个过程较慢,请耐心等待)安装成功后,在cmd输入appium出现以下信息表明安装成功:

  42. 至此,appium的安装过程结束。

  43. 7 直接安装appium
  44. 去http://appium.io/下载appnium的windws安装包,然后添加环境变量:

  45. C:\Program Files (x86)\Appium;

  46. 在cmd中输入set path=c

  47. 重启cmd,输入echo %PATH%检查环境变量,输入appnium启动appnium
复制代码
第一个测试脚本测试脚本(真机)

还需准备
  1. 1 安装Python的setuptools库 (因为安装Python的Selenium库需要用到它)
  2.     1) 下载setuptools文件并解压 https://pypi.python.org/pypi/setuptools/12.0.4#downloads   
  3.     2) 打开CMD窗口,进入解压后的setuptools目录,执行命令python setup.py install 进行安装
  4.      D:\setuptools-12.0.4>python setup.py install
  5. 2 安装Python的Selenium库(Appium是采用WebDriver传输测试请求,利用Selenium的WebDriver功能)   
  6.     1) 下载selenium文件并解压 https://pypi.python.org/pypi/selenium/2.44.0
  7.     2) 打开CMD窗口,进入解压后的selenium目录,执行命令python setup.py install 进行安装   
  8.     D:\selenium-2.44.0>python setup.py install
  9. 3 下载Python的HTMLTestRunner.py,保存到Python安装路径的Lib目录下(如C:\Python27\Lib)。

  10.     下载地址 http://tungwaiyip.info/software/HTMLTestRunner.html
复制代码
脚本如下
  1. class elementA(unittest.TestCase):
  2.         def test_(self):   
  3.             desired_caps = {}
  4.             desired_caps['deviceName'] = 'S85P5DJJJNFATO4L'  #adb devices查到的设备名
  5.             desired_caps['platformName'] = 'Android'
  6.             desired_caps['platformVersion'] = '23'
  7.             desired_caps['appPackage'] = 'com.cmbchina.ccd.pluto.cmbActivity'  #被测App的包名
  8.             desired_caps['appActivity'] = '.SplashActivity ' #启动时的Activity
  9.             driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
  10.             driver.quit()


  11.     if __name__ == '__main__':
  12.         testunit=unittest.TestSuite()        #定义一个单元测试容器
  13.         testunit.addTest(elementA("test_"))  #将测试用例加入到测试容器中   
  14.         filename="./myAppiumLog.html"        #定义个报告存放路径,支持相对路径。
  15.         fp=file(filename,'wb')
  16.         runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='Report_title',description='Report_description')  #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
  17.         runner.run(testunit)                 #自动进行测试
复制代码
如何获取Appactivity

方法一:

查看源代码,没有源代码可以采取自己反编译的方法。这里将用到2个工具,分别是dex2jar和jd-gui。你可以
在这里下载目前为止的最新版本以及示例apk。

我们以工具包里的ContactManager.apk为例,简单介绍一下反编译的流程。

  1. 1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex;
  2.     2,解压dex2jar-0.0.9.15.zip,并从命令行进入该文件夹;
  3.     3,运行命令 d2j-dex2jar.bat path_to\classes.dex 在当前文件夹下得到classes-dex2jar.jar;
  4.     4,解压jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;
  5.     5,使用jd-gui.exe打开classes-dex2jar.jar;
复制代码
方法二:
Log的方法
  1. a、启动待测apk
  2. b、开启日志输出:adb logcat>D:/log.txt
  3. c、关闭日志输出:ctrl+c
  4. d、查看日志
  5. 找寻:Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
  6. appPackage = com.mm.android.hsy
  7. appActivity = .ui.LoginActivity



  8. ContactManager git:(master) ✗ aapt dump badging ContactManager.apk
  9. package: name='com.example.android.contactmanager' versionCode='1' versionName='1.0'
  10. sdkVersion:'5'
  11. targetSdkVersion:'5'
  12. uses-permission:'android.permission.GET_ACCOUNTS'
  13. uses-permission:'android.permission.READ_CONTACTS'
  14. uses-permission:'android.permission.WRITE_CONTACTS'
  15. application-label:'Contact Manager'
  16. application-icon-120:'res/drawable-ldpi/icon.png'
  17. application-icon-160:'res/drawable-mdpi/icon.png'
  18. application-icon-240:'res/drawable-hdpi/icon.png'
  19. application: label='Contact Manager' icon='res/drawable-mdpi/icon.png'
  20. application-debuggable
  21. launchable-activity: name='com.example.android.contactmanager.ContactManager'  label='Contact Manager' icon=''
  22. uses-permission:'android.permission.READ_CALL_LOG'
  23. uses-implied-permission:'android.permission.READ_CALL_LOG','targetSdkVersion < 16 and requested READ_CONTACTS'
  24. uses-permission:'android.permission.WRITE_CALL_LOG'
  25. uses-implied-permission:'android.permission.WRITE_CALL_LOG','targetSdkVersion < 16 and requested WRITE_CONTACTS'
  26. uses-feature:'android.hardware.touchscreen'
  27. uses-implied-feature:'android.hardware.touchscreen','assumed you require a touch screen unless explicitly made optional'
  28. main
  29. other-activities
  30. supports-screens: 'small' 'normal' 'large'
  31. supports-any-density: 'true'
  32. locales: '--_--'
  33. densities: '120' '160' '240'
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-10 22:08 , Processed in 0.073914 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表