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

 采用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
appium自动化测试脚本、appium python脚本、appium执行python脚本、python自动化测试脚本、python实现自动化测试,以便于您获取更多的相关知识。

时间: 2024-09-20 01:08:20

Python脚本在Appium库上对移动应用实现自动化测试_python的相关文章

restclient-如何实现python脚本实现访问vcloud上的资源

问题描述 如何实现python脚本实现访问vcloud上的资源 我想用python脚本实现访问vcloud上的资源,用RESTClient的访问过程是: 1)POST:https://10.68.127.66/api/sessions(附加头信息有authorization(username:password),headers("Accept":"application/*+xml;version=5.1")). 2)然后通过REST API 访问vcloud上的资

使用Python脚本在Linux下实现部分Bash Shell的教程_python

对于Linux用户来说,命令行的名声相当的高.不像其他操作系统,命令行是一个可怕的命题,但是对于Linux社区中那些经验丰富的大牛,命令行却是最值得推荐鼓励使用的.通常,命令行对比图形用户界面,更能提供更优雅和更高效的解决方案. 命令行伴随着Linux社区的成长,UNIX shells,例如 bash和zsh,已经成长为一个强大的工具,也是UNIX shell的重要组成部分.使用bash和其他类似的shells,可以得到一些很有用的功能,例如,管道,文件名通配符和从文件中读取命令,也就是脚本.

Python中使用第三方库xlrd来写入Excel文件示例_python

继上一篇文章使用xlrd来读Excel之后,这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表示write xls,同样目前版本只支持97-03版本的Excel.xlwt下载:xlwt 0.7.4 安装xlwt 安装方式一样是python setup.py install就可以了,或者直接解压到你的工程目录中. API介绍 获取一个xls实例 复制代码 代码如下: xls = ExcelWrite.Work

使用Python脚本将绝对url替换为相对url的教程_python

公司一个项目需要上传图片,一开始同事将图片上传后结合当前主机拼成了一个绝对的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jpg由于同时给手机终端提供接口,在手机终端会引起一些bug,改完代码后要求将以前的uri替换成相对的URL(/m/getimg?filename=xxx.jpg),由于图片是用img标签嵌入到内容同时用a标签括起显示大图的,所以需要读取数据库并对内容进行替换, 脚本内容如下: #!/usr/bin/env python #

在Python中利用Pandas库处理大数据的简单介绍_python

在数据分析领域,最热门的莫过于Python和R语言,此前有一篇文章<别老扯什么Hadoop了,你的数据根本不够大>指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择.这次拿到近亿条日志数据,千万级数据已经是关系型数据库的查询分析瓶颈,之前使用过Hadoop对大量文本进行分类,这次决定采用Python来处理数据:     硬件环境         CPU:3.5 GHz Intel Core i7         内存:32 GB HDDR 3 1600 MHz      

Python实现抓取页面上链接的简单爬虫分享_python

除了C/C++以外,我也接触过不少流行的语言,PHP.java.javascript.python,其中python可以说是操作起来最方便,缺点最少的语言了. 前几天想写爬虫,后来跟朋友商量了一下,决定过几天再一起写.爬虫里重要的一部分是抓取页面中的链接,我在这里简单的实现一下. 首先我们需要用到一个开源的模块,requests.这不是python自带的模块,需要从网上下载.解压与安装: 复制代码 代码如下: $ curl -OL https://github.com/kennethreitz/

如何使用Python脚本来监控线上AMQ Number of Pending Messages数量

需求:用python脚本统计线上AMQ的Number of Pending Messages数量,当达到10的时候发送Email报警邮件 脚本实现逻辑如下: 1)用户名密码登陆到WEB页面 2)获取WEB页面的源代码 3)用正则表达式匹配AMQ的Number of Pending Messages值 4)判断是否达到报警阀值 5)如果达到报警阀值,发送Email报警邮件 在登陆AMQ页面的时候用Fiddler工具(www.fiddler2.com)查看HTTP请求的详细过程. Fiddler工具

利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程

  这篇文章主要介绍了利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程,示例基于CentOS操作系统,需要的朋友可以参考下 在 CentOS 下使用 apache+mod_wsgi 部署了 MoinMoin,但是编辑和保存页面很慢,于是准备使用 nginx+uwsgi 重新部署 本文假定已经按照官方指引 Quick MoinMoin on CentOS 完成了 apache 和 mod_wsgi 之外的基础安装 安装 Nginx 默认情况下,CentOS 下没有 ngin

在IIS服务器上以CGI方式运行Python脚本的教程_python

由于接触到Python Web开发,正好把最简单的CGI方式研究了一下,话说在Windows下配置Python的Web开发还真的蛮麻烦的,Linux下配置倒挺容易,正好微软有技术文章<Using Python Scripts with IIS>介绍了这些内容,此文介绍了两种方法,一是使用ASP引擎来运行Python脚本,这个可能需要用到ActivePython,当然ASP技术已经过时了,我今天就简单介绍下CGI模块运行方式. 编写简单的支持CGI的Python脚本(本文介绍3.2版本的Pyth