51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2163|回复: 1
打印 上一主题 下一主题

Appium自动化测试系列2- 写一个Python测试脚本来测试一下YY语音

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-13 14:06:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我们在《Appium自动化测试系列1-Appium环境的安装和配置》里已经搭好了Appium的基本环境,这一章,我们就来真刀真枪使用一下Appium, 看看Appium是如果来实现自动化测试的。在写测试脚本之前,我们先安装几个必要的Python三方库。

1 安装Python的setuptools库 (因为安装Python的Selenium库需要用到它)

    1) 下载setuptools文件并解压 https://pypi.python.org/pypi/setuptools/12.0.4#downloads

    2) 打开CMD窗口,进入解压后的setuptools目录,执行命令python setup.py install 进行安装

  1. D:\setuptools-12.0.4>python setup.py install
复制代码

2 安装Python的Selenium库(Appium是采用WebDriver传输测试请求,利用Selenium的WebDriver功能)

    1) 下载selenium文件并解压 https://pypi.python.org/pypi/selenium/2.44.0

    2) 打开CMD窗口,进入解压后的selenium目录,执行命令python setup.py install 进行安装

  1. D:\selenium-2.44.0>python setup.py install
复制代码

3 下载Python的HTMLTestRunner.py,保存到Python安装路径的Lib目录下(如C:\Python27\Lib)。

下载地址 http://tungwaiyip.info/software/HTMLTestRunner.html


接下来,在你的Android手机上安装一个YY语音(我们以YY语音为例),然后把你的手机连接到电脑(建议采用Android4.x的手机),执行命令adb devices 查看手机的deviceName,比如我的手机deviceName是 4d00b6a5bee8a047

  1. D:\>adb devices
  2. List of devices attached
  3. 4d00b6a5bee8a047        device
复制代码

开始写测试脚本my_android_test.py(脚本里要配置正确deviceName,软件包和启动Activity):

  1. #coding:utf-8
  2. import os
  3. import HTMLTestRunner
  4. import unittest
  5. from selenium import webdriver

  6. # Returns abs path relative to this file and not cwd
  7. PATH = lambda p: os.path.abspath(
  8.     os.path.join(os.path.dirname(__file__), p)
  9. )

  10. class elementA(unittest.TestCase):       
  11.         def test_(self):       
  12.                 desired_caps = {}
  13.                 desired_caps['deviceName'] = '4d00b6a5bee8a047'  #adb devices查到的设备名
  14.                 desired_caps['platformName'] = 'Android'
  15.                 desired_caps['platformVersion'] = '4.2'               
  16.                 desired_caps['appPackage'] = 'com.duowan.mobile'  #被测App的包名
  17.                 desired_caps['appActivity'] = 'com.yy.mobile.ui.splash.SplashActivity' #启动时的Activity
  18.                 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

  19.                 el = driver.find_element_by_name(u"神曲")
  20.                 self.assertIsNotNone(el)
  21.                 el.click()               
  22.                 yueBang = driver.find_element_by_name(u"月榜")
  23.                 self.assertIsNotNone(yueBang)
  24.                 yueBang.click()               
  25.                 driver.quit()
  26.        
  27. if __name__ == '__main__':
  28.     testunit=unittest.TestSuite()        #定义一个单元测试容器
  29.     testunit.addTest(elementA("test_"))  #将测试用例加入到测试容器中   
  30.     filename="./myAppiumLog.html"        #定义个报告存放路径,支持相对路径。
  31.     fp=file(filename,'wb')
  32.     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='Report_title',description='Report_description')  #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
  33.     runner.run(testunit)                 #自动进行测试
复制代码

打开一个CMD窗口,启动Appium。 再打开一个CMD新窗口,执行命令 python my_android_test.py 执行测试脚本。

测试完成后,会在测试脚本的同目录下生成一个名为 myAppiumLog.html的Log文件(见脚本中相应的代码段)。同时,Appium运行窗口默认会打印整个测试过程的所有信息(整个测试过程,Appium做了以下一些事:获取手机系统信息、启动UIAutomator、端口forward、启动手机上的Appium服务、执行控件的操作如查找点击等等)


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

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-22 21:25 , Processed in 0.062954 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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