appium学习【四】:第一个appium脚本
- #coding=utf-8
- import os
- import HTMLTestRunner
- import unittest
- import time
- import sys
- from appium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.common.exceptions import TimeoutException
- reload(sys)
- sys.setdefaultencoding('utf8')
- #Returns abs path relative to this file and not cwd
- PATH = lambda p:os.path.abspath(
- os.path.join(os.path.dirname(__file__),p)
- )
- #类继承unittest.TestCase类,从TestCase类继承是告诉unittest模块的方式,这是一个测试案例。
- class BangbanAndroidTests(unittest.TestCase):
- #setUp 用于设置初始化的部分,在测试用例执行前,这个方法中的函数将先被调用。
- def setUp(self):
- desired_caps = {}
- desired_caps['deviceName'] = '127.0.0.1:62001'
- desired_caps['platformName'] = 'Android'
- desired_caps['platformVersion'] = '4.4.2'
- desired_caps['appPackage'] = 'com.cbwlkj.cyzb' #邦办达人App的包名
- desired_caps['appActivity'] = 'com.hsdzkj.husong.ui.activity.IndexActivity' #启动时的Activity
- self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
- #tearDown 方法在每个测试方法执行后调用,这个地方做所有清理工作,如退出
- def tearDown(self):
- self.driver.close_app()
- self.driver.quit()
- #放置的就是我们的测试脚本了,这部分我们并不陌生;因为我们执行的脚本就在这里。
- def test_bangban_login(self):
- try:
- WebDriverWait(self.driver,10).until(
- EC.presence_of_element_located((By.ID,'com.cbwlkj.cyzb:id/contact_phone1'))
- )
- self.driver.find_element_by_id('com.cbwlkj.cyzb:id/contact_phone1').send_keys('')
- time.sleep(5)
- except TimeoutException:
- print u'达人登录页面加载失败'
- funcName = sys._getframe().f_code.co_name
- print funcName
- pngfile = "E:\\appium_code\\png\\" + funcName + timestr + ".png"
- print pngfile
- self.driver.get_screenshot_as_file(pngfile)
- raise
- #unitest.main()函数用来测试 类中以test开头的测试用例
- if __name__ == '__main__':
- suite = unittest.TestSuite()
- suite.addTest(
- unittest.defaultTestLoader.loadTestsFromTestCase(BangbanAndroidTests)
- )
- timestr = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time()))
- filename = "E:\\appium_code\\report\\result_" + timestr + ".html"
- fp = open(filename, 'wb')
- runner = HTMLTestRunner.HTMLTestRunner(
- stream=fp,
- title='测试结果',
- description='测试报告'
- )
- runner.run(suite)
- fp.close() # 测试报告关闭
appium学习【四】:第一个appium脚本的更多相关文章
- 从0开始的Python学习013编写一个Python脚本
通过之前的学习我们已经了解了Python的很多基础运用了,现在我们尝试着做一个有使用价值的小脚本. 问题 需求: 我想要一个可以给我备份重要文件的程序. 需求分析: 首先文件是有存储路径,文件的路径和 ...
- Appium学习实践(四)结构优化
随着我们测试脚本中的用例越来越多,我们不可能将所有的用例都放在同一个脚本中,所以我们需要优化我们的结构.将脚本放在一个文件夹中,再通过别的脚本来执行脚本.这样,我们也可以有选择性的执行我们的脚本 先来 ...
- Appium学习实践(三)测试用例脚本以及测试报告输出
之前Appium学习实践(二)Python简单脚本以及元素的属性设置中的脚本,会有一个问题,就是在每个测试用例完成之后都会执行tearDown,然后重新setUp,这样导致脚本的执行效率偏低,而且会有 ...
- Appium学习实践(二)Python简单脚本以及元素的属性设置
1.简单的Python脚本 Appium中的设置与Appium学习实践(一)简易运行Appium中的一致 Launch后,执行脚本 #coding:utf-8 import unittest impo ...
- Appium学习路—脚本篇(启动app)
启动之前的准备 1.脚本执行前,需要先启动appium的server端, 启动server方法: 打开appium客户端,点击右上角的Launch 2.iOS的测试只能在mac本上做 ...
- Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素
1. 真实机第一个appium程序 学完了前面的知识,也将环境搭建好了,接下来我们就正式开始appium的学习了. 在做app自动化的时候,我们肯定是针对某个产品.某个软件进行测试,那么我们一定是先让 ...
- 第一个Appium脚本
测试环境 Win 10 64bit Python 3.5 Appium 1.7.2 Andriod 5.1.1 模拟器& Android 5.1 MX4 测试App:考研帮Android版 3 ...
- 【Mac + Appium + Python3.6学习(四)】之常用的IOS自动化测试API总结
环境: Appium:1.9.1 Appium-desktop:1.7.1 Xcode:10.0 IOS:iPhone5S(10.3.3) Mac:10.13.6 ①获取手机屏幕size:长.宽 &l ...
- Appium python自动化测试系列之认识Appium(四)
4.1界面认识 在之前安装appium的时候说过我们有两种方法安装,也就有两种结果,一种是有界面的,一种是没有界面的,首先我们先讲一下有界面的,以及界面有哪些东西. 首先看第一幅图,如果你的是win ...
- Appium自动化测试环境的搭建及脚本执行
之前搭建了robotium的环境,并使用了一下,因为需要兼顾到ios的测试,所以这次又搭建了appium的环境.关于Appium的介绍网上有很多了,也可以去它的官网学习,这里就不在赘述了. 具体搭建步 ...
随机推荐
- mybatis查询返回null解决方案
mybatis查询返回null解决方案: 问题:查询出的列与javabean中的字段名不一致. 解决方案: 1.将javabean中的字段改为和查询出的列名一致: 2.将sql加入as改变列名,和ja ...
- eclipse pom.xml 报错org.apache.maven.plugin.war.WarMojo的解决办法
如题,maven项目eclipse提示pom.ml有错,提示信息就是org.apache.maven.plugin.war.WarMojo. 然后执行 maven install 出现如下错误提示 [ ...
- 积累js中的一些问题及解决方案
一.取字符串的第i位不兼容的问题 1.问题:对于字符串str来说,要获取第i位,常见的是str[i],但是在低版本的浏览器中不兼容,例如ie7. 2.解决:使用str.charAt(i); 二.使用定 ...
- ArrayList去除重复元素
去除一个ArrayList的重复元素有两种方法:(ArrayList与Vector的存储结构是Object[],LinkedList是双向列表) 第一种是不需要借助临时list,用equals方法比较 ...
- 使用Navicat进行数据库对比同步
使用Navicat进行数据库对比同步 当有多个数据库时,有时会出现结构或者数据不同步的问题,这时候可以使用navivat工具对比同步( 我的Navicat版本是11.0.17). 参考博客: 岁伏的博 ...
- D. Spongebob and Squares--cf599D(数学)
http://codeforces.com/problemset/problem/599/D 题目大意:给你一个数k 让你求一个n*m的矩形里面包含k个正方形 输出有几个这样的矩形 分别是什么 ...
- 2017多校Round4(hdu6067~hdu6079)
补题进度:10/13 1001 待填坑 1002(kmp+递推) 题意: 有长度为n(<=50000)的字符串S和长度为m(m<=100)的字符串T,有k(k<=50000)组询问, ...
- 分析Linux文件rwx属性的含义
Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来. ls -l(这个参数是字母L的小写,不是数字1) 这个命 ...
- Swift初体验之HelloWord+苹果Swift编程语言新手教程【中文版】
AppDelegate.swift : <span style="font-size:24px;"><strong>// // AppDelegate.sw ...
- topcoder srm 552
div1 250pt: 题意:用RGB三种颜色的球摆N层的三角形,要求相邻的不同色,给出RGB的数量,问最多能摆几个 解法:三种颜色的数量要么是全一样,要么是两个一样,另外一个比他们多一个,于是可以分 ...