Python脚本在Appium库上对移动应用实现自动化测试


Posted in Python onApril 17, 2015

 采用Appium进行自动化的功能性测试最酷的一点是,你可以使用具有最适合你的测试工具的任何一门语言来写你的测试代码。大家选择最多的一个测试编程语言就是Python。 使用Appium和Python为iOS和Android应用编写测试代码非常容易。

在这篇博文中我们将详细讲解使用Appium下的Python编写的测试的例子代码对一个iOS的样例应用进行测试所涉及的各个步骤,而对Android应用进行测试所需的步骤与此非常类似。

开始,先自https://github.com/appium/appiumfork并clone Appium,然后按照安装指南,在你的机器上安装好Appium。

我还需要安装Appium的所有依赖并对样例apps进行编译。在Appium的工作目录下运行下列命令即可完成此任务:
 

$ ./reset.sh --ios

编译完成后,就可以运行下面的命令启动Appium了:
 

$ grunt appium

现在,Appium已经运行起来了,然后就切换当前目录到sample-code/examples/python。接着使用pip命令安装所有依赖库(如果不是在虚拟环境virtualenv之下,你就需要使用sudo命令):
 

$ pip install -r requirements.txt

接下来运行样例测试:
 

$ nosetests simple.py

既然安装完所需软件并运行了测试代码,大致了解了Appium的工作过程,现在让我们进一步详细看看刚才运行的样例测试代码。该测试先是启动了样例应用,然后在几个输入框中填写了一些内容,最后对运行结果和所期望的结果进行了比对。首先,我们创建了测试类及其setUp方法:
 

classTestSequenceFunctions(unittest.TestCase):
 
  defsetUp(self):
    app=os.path.join(os.path.dirname(__file__),
              '../../apps/TestApp/build/Release-iphonesimulator',
              'TestApp.app')
    app=os.path.abspath(app)
    self.driver=webdriver.Remote(
      command_executor='http://127.0.0.1:4723/wd/hub',
      desired_capabilities={
        'browserName':'iOS',
        'platform':'Mac',
        'version':'6.0',
        'app': app
      })
    self._values=[]

“desired_capabilities”参数用来指定运行平台(iOS 6.0)以及我们想测试的应用。接下来我们还添加了一个tearDown方法,在每个测试完成后发送了退出命令:
 

deftearDown(self):
  self.driver.quit()

最后,我们定义了用于填写form的辅助方法和主测试方法:

 

def_populate(self):
  # populate text fields with two random number
  elems=self.driver.find_elements_by_tag_name('textField')
  foreleminelems:
    rndNum=randint(0,10)
    elem.send_keys(rndNum)
    self._values.append(rndNum)
 
deftest_ui_computation(self):
  # populate text fields with values
  self._populate()
  # trigger computation by using the button
  buttons=self.driver.find_elements_by_tag_name("button")
  buttons[0].click()
  # is sum equal ?
  texts=self.driver.find_elements_by_tag_name("staticText")
  self.assertEqual(int(texts[0].text),self._values[0]+self._values[1])

就是这样啦!Appium的样例测试代码中还有许多Python的例子。如果你对使用Nose和Python来运行Appium测试有任何问题或看法,烦请告知。

Python 相关文章推荐
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
python一键去抖音视频水印工具
Sep 14 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
python实现海螺图片的方法示例
May 12 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
python实现kNN算法识别手写体数字的示例代码
Aug 16 Python
numpy求平均值的维度设定的例子
Aug 24 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
python如何为list实现find方法
May 30 Python
Python中生成器和yield语句的用法详解
Apr 17 #Python
使用Python脚本在Linux下实现部分Bash Shell的教程
Apr 17 #Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 #Python
用Python的Django框架编写从Google Adsense中获得报表的应用
Apr 17 #Python
在Docker上开始部署Python应用的教程
Apr 17 #Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 #Python
在服务器端实现无间断部署Python应用的教程
Apr 16 #Python
You might like
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
python retrying模块的使用方法详解
2019/09/25 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
智能旅行箱:Horizn Studios
2018/04/30 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
餐厅总厨求职信
2014/03/04 职场文书
论文指导教师评语
2014/04/28 职场文书
如何写早恋检讨书
2014/09/10 职场文书
小学生运动会报道稿
2014/09/12 职场文书
老干部工作汇报材料
2014/10/28 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏