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 面向对象 成员的访问约束
Dec 23 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
python批量制作雷达图的实现方法
Jul 26 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
Python实现打砖块小游戏代码实例
May 18 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
pytorch 更改预训练模型网络结构的方法
Aug 19 Python
Python API len函数操作过程解析
Mar 05 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 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
星际流派综述
2020/03/04 星际争霸
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
jquery索引在使用中的一些困惑
2013/10/24 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
angular多语言配置详解
2019/05/16 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
.net软件工程师应聘上机试题
2015/03/10 面试题
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
微博营销计划书
2014/01/10 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
同学聚会通知短信
2015/04/20 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书