Appium自动化测试演示
作者:网络转载 发布时间:[ 2016/12/9 16:27:23 ] 推荐标签:自动化测试 Appium 软件测试工具
经验是:
每两次操作之间,一定要间隔几秒,不然可能会由于加载不完全,导致操作异常
初始隐藏的控件,要判断状态,等显示后再操作
后输出:
测试截图的相似度百分比(之前某一次结果),用来做正确性验证,基本上相似度小余90%的都有点问题
http://v.youku.com/v_show/id_XNjM0ODIxNTUy.html
密码:testerhome.com
PS:原来不支持嵌入视频啊
相似度计算是看的 http://blog.csdn.net/gzlaiyonghao/article/details/2325027
现在搞不太清楚的是怎么判断当前的位置,是在什么窗口下面,和如何打印出当前位置的所有控件
# coding:utf8
import logging
import histsimilar
import traceback
import time
import os
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, WebDriverException
logging.basicConfig(filename='log.txt',level=logging.INFO)
success = True
desired_caps = dict()
desired_caps['browserName'] = 'iOS'
desired_caps['platform'] = 'Mac'
desired_caps['version'] = '6.1'
desired_caps['app'] = os.path.abspath('测试app的位置')
#def is_alert_present(wd):
# try:
# wd.switch_to_alert().text
# return True
# except:
# return False
def click(element):
element.click()
time.sleep(3)
logging.info(str(c) + ' time click ' + wd.page_source)
screenshot()
def send_keys(element, keys):
element.send_keys(keys)
time.sleep(3)
logging.info(str(c) + ' time click ' + wd.page_source)
screenshot()
def execute_script(script, args):
wd.execute_script(script, args)
time.sleep(3)
screenshot()
def mk_new_dir():
global path, base
base = '截图存放的位置'
if not os.path.isdir(base):
path = base + '0/'
os.mkdir(path)
return
path = base + str(len(os.listdir(base))) + '/'
c = 0
def screenshot():
global c, path
if not os.path.isdir(path):
os.mkdir(path)
wd.get_screenshot_as_file(path + str(c) + '.png')
c += 1
def compare():
dirs = list()
for dirname in os.listdir(base):
if os.path.isdir(base + dirname):
dirs.append((os.path.getmtime(base + dirname), dirname))
if len(dirs) < 3:
return
dirs.sort()
new = dirs[len(dirs) - 1][1]
previous = dirs[len(dirs) - 2][1]
names = [(os.path.getmtime(base + new + '/' + filename), filename) for filename in
os.listdir(base + new)]
names.sort()
for n in names:
if n[1].startswith('.'):
continue
if os.path.exists(base + previous + '/' + n[1]):
print n[1] + ' similarity : ' + str(
int(histsimilar.calc_similar_by_path(base + new + '/' + n[1],
base + previous + '/' + n[1]) * 100)) + '%'
try:
mk_new_dir()
wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
wd.implicitly_wait(5)
try:
button = wd.find_element_by_name('点击开启')
while not button.is_displayed():
#screenshot()
time.sleep(1)
time.sleep(3)
click(button)
except WebDriverException, NoSuchElementException:
logging.info('没有开机动画')
click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]/button[1]"))
click(wd.find_element_by_name(" 返回"))
click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]/button[2]"))
click(wd.find_element_by_name(" 返回"))
click(wd.find_element_by_name("游记"))
click(wd.find_element_by_name("qunar login"))
send_keys(wd.find_element_by_xpath("//window[1]/image[2]/textfield[1]"), "lvtu@yopmail.com")
send_keys(wd.find_element_by_xpath("//window[1]/image[3]/secure[1]"), "lvtu@yopmail.com")
click(wd.find_element_by_name("登录"))
try:
click(wd.find_element_by_xpath("//window[1]/button[3]"))
except:
logging.info('没上传提示')
click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]/text[1]"))
click(wd.find_element_by_xpath("//window[1]/tableview[1]/cell[1]"))
execute_script("mobile: swipe",
{"touchCount": 1, "startX": 157, "startY": 529, "endX": 156, "endY": 102, "duration": 0.5})
click(wd.find_element_by_name(" 返回"))
click(wd.find_element_by_name(" 返回"))
click(wd.find_element_by_xpath("//window[1]/button[1]"))
except:
traceback.print_exc()
success = False
finally:
if success:
#raise Exception("Test failed.")
compare()
wd.quit()
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11