【2】APP自动化-脚本研发2.0-3.0需要重复看视频






calculatorV1.0.py
#V1.0 实现手机端计算器自动化测试:使用常量进行参数传递
#导入appium类库
from appium.webdriver.webdriver import WebDriver
#定义一个字典类型,存放参数设置
# caps={}
# caps['automationName']='UiAutomator2' #自动化名称
# caps['platformName']='Android' #平台名称
# caps['platformVersion']='6.0' #平台版本
# caps['deviceName']='192.168.141.101:5555' #设备名称
# caps['appPackage']='com.android.calculator2' #包名
# caps['appActivity']='.Calculator' #app名称
#
# driver=WebDriver('http://127.0.0.1:4723/wd/hub',caps)
# #传入相关测试数据,前提是启动模拟器,打开计算器,click单击
# driver.find_element_by_id('com.android.calculator2:id/digit_7').click()
# driver.find_element_by_id('com.android.calculator2:id/op_add').click()
# driver.find_element_by_id('com.android.calculator2:id/digit_8').click()
# driver.find_element_by_id('com.android.calculator2:id/eq').click()
# #获取运行结果
# result=driver.find_element_by_id('com.android.calculator2:id/formula').text
# #print(result)
# #进行结果比对
# if(int(result)==15): int转换成整数类型
# print("测试通过")
# else:
# print("测试失败")

#V2.1 实现手机端计算器自动化测试:使用变量进行参数传递
#导入appium类库
# from appium.webdriver.webdriver import WebDriver
#
# #定义一个字典类型,存放参数设置
# caps={}
# caps['automationName']='UiAutomator2'
# caps['platformName']='Android'
# caps['platformVersion']='6.0'
# caps['deviceName']='192.168.141.101:5555'
# caps['appPackage']='com.android.calculator2'
# caps['appActivity']='.Calculator'
#
# driver=WebDriver('http://127.0.0.1:4723/wd/hub',caps)
# #传入相关测试数据
# x=input("请输入一个值")
# exresult=int(x)+8
# driver.find_element_by_id('com.android.calculator2:id/digit_'+str(x)).click()
# driver.find_element_by_id('com.android.calculator2:id/op_add').click()
# driver.find_element_by_id('com.android.calculator2:id/digit_8').click()
# driver.find_element_by_id('com.android.calculator2:id/eq').click()
# #获取运行结果
# result=driver.find_element_by_id('com.android.calculator2:id/formula').text
# #print(result)
# #进行结果比对
# if(int(result)==int(exresult)): #实际结果=预期结果
# print("测试通过")
# else:
# print("测试失败")
# #V2.2 实现手机端计算器自动化测试:使用循环+多组变量进行参数传递
#
# #导入appium类库
# from appium.webdriver.webdriver import WebDriver
# import random
# #定义一个字典类型,存放参数设置
# caps={}
# caps['automationName']='UiAutomator2'
# caps['platformName']='Android'
# caps['platformVersion']='6.0'
# caps['deviceName']='192.168.141.101:5555'
# caps['appPackage']='com.android.calculator2'
# caps['appActivity']='.Calculator'
#
# driver=WebDriver('http://127.0.0.1:4723/wd/hub',caps)
# #传入相关测试数据
# #生成随机数
# for i in range(0,3):
# x = random.randint(0, 9)
# y = random.randint(0, 9)
# exresult=int(x)+int(y)
# driver.find_element_by_id('com.android.calculator2:id/digit_'+str(x)).click()
# driver.find_element_by_id('com.android.calculator2:id/op_add').click()
# driver.find_element_by_id('com.android.calculator2:id/digit_'+str(y)).click()
# driver.find_element_by_id('com.android.calculator2:id/eq').click()
# #获取运行结果
# result=driver.find_element_by_id('com.android.calculator2:id/formula').text
# #print(result)
# #进行结果比对
# if(int(result)==int(exresult)):
# print(str(x)+"+"+str(y)+"测试通过")
# else:
# print(str(x)+"+"+str(y)+"测试失败")
#

#V3.0 实现手机端计算器自动化测试:使用文件方式进行参数传递
#导入appium类库
# from appium.webdriver.webdriver import WebDriver
# import random
# import csv
#
# #定义一个字典类型,存放参数设置
# caps={}
# caps['automationName']='UiAutomator2'
# caps['platformName']='Android'
# caps['platformVersion']='6.0'
# caps['deviceName']='192.168.141.101:5555'
# caps['appPackage']='com.android.calculator2'
# caps['appActivity']='.Calculator'
#
# driver=WebDriver('http://127.0.0.1:4723/wd/hub',caps)
# #传入相关测试数据
# #通过文件获取测试数据
# file=open("testdata.csv","r")
# table=csv.reader(file) #获取文件内容
# file2=open("testresult.csv","w",newline='')
# writer=csv.writer(file2)
# for row in table:
# x=row[0]
# y=row[1]
# exresult=row[2]
#
# driver.find_element_by_id('com.android.calculator2:id/digit_'+str(x)).click()
# driver.find_element_by_id('com.android.calculator2:id/op_add').click()
# driver.find_element_by_id('com.android.calculator2:id/digit_'+str(y)).click()
# driver.find_element_by_id('com.android.calculator2:id/eq').click()
# #获取运行结果
# result=driver.find_element_by_id('com.android.calculator2:id/formula').text
# #print(result)
# #进行结果比对
# if(int(result)==int(exresult)):
# row.append("测试通过")
# writer.writerow(row)
# else:
# row.append("测试失败")
# writer.writerow(row)
#
# file2.close()
#V4.0从文件中读取多位多组数的混合运算的测试
#导入appium类库
from appium.webdriver.webdriver import WebDriver
import random
import csv
#定义一个字典类型,存放参数设置
caps={}
caps['automationName']='UiAutomator2'
caps['platformName']='Android'
caps['platformVersion']='6.0'
caps['deviceName']='192.168.141.101:5555'
caps['appPackage']='com.android.calculator2'
caps['appActivity']='.Calculator'
driver=WebDriver('http://127.0.0.1:4723/wd/hub',caps)
#传入相关测试数据
#通过文件获取测试数据
file=open("testdata3.csv","r")
tables=csv.reader(file)
for row in tables:
print(row[0])
print(row[1])
print(row[2])
print(row[3])
driver.find_element_by_id('com.android.calculator2:id/formula').send_keys(row[0]+row[1]+row[2])
driver.find_element_by_id('com.android.calculator2:id/eq').click()
result=driver.find_element_by_id('com.android.calculator2:id/formula').text
if(int(result)==int(row[3])):
print("测试通过")
else:
print("测试失败")
driver.fin



关于计算器上无法识别的负号进行的补充说明,计算器上抓取的负号较长,键盘敲出的负号较短,需要坐一个类型转换

【2】APP自动化-脚本研发2.0-3.0需要重复看视频的更多相关文章
- Python+Appium来写app自动化脚本
1...........................我有空再补
- Appium + Python App自动化第一个脚本
今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...
- appium1.4+华为8.0执行自动化脚本,报启动session失败,原因是unicode_ime_apk\Uni codeIME-debug.apk在手机上已存在,再次安装失败,导致启动session失败,解决办法:换高版本的appium
最开始做Android自动化测试时,通过执行脚本发现报,已安装UnicodeIME-debug.apk,再次安装失败,当时觉得这个apk对我来说没用,就把D:\Program Files (x86)\ ...
- 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例
查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...
- 安卓8.0真机运行appium1.4遇到的问题:运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装?
运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装? 这3个apk的目录分别是: D:\P ...
- 知道创宇研发技能表v3.0
知道创宇研发技能表v3.0 2015/8/21 发布 by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关 ...
- appium-desktop录制脚本二次开发,生成我司自动化脚本
目的 通过对appium-desktop脚本录制功能进行二次开发,使录制的java脚本符合我司自动化框架要求. 实现步骤 1.增加元素名称的输入框 由于ATK(我司自动化测试框架)脚本中元素是以“ap ...
- app自动化问题点整理
1.配置SDK环境发现adb无法生效: 解决方案: 这个问题一般就是你的环境变量没有配置好,很多同学比较容易出现的点就是win10系统的环境变量配置: 一定要注意打开path添加:%ANDROID_H ...
- 手机APP自动化之uiautomator2 +python3 UI自动化
题记: 之前一直用APPium直到用安卓9.0 发现uiautomatorviewer不支持安卓 9.0,点击截屏按钮 一直报错,百度很久解决方法都不可以,偶然间看见有人推荐:uiautomator ...
- APP自动化针对PO模式进行二次封装之basepage
APP自动化跟WEB自动化所使用的框架基本一样,都是采用的PO模式结合pytest框架编写自动化测试脚本,为了提高代码的复用性.稳定性和易维护性,我们针对PO模式进行了二次封装,将日志,等待以及异常截 ...
随机推荐
- uniapp 微信小程序 引入 环信聊天
最近项目需要实现一个聊天的功能,群聊或者单聊,用到环信,根据官网实现一下相关的配置吧 第一:下载环信demo 地址:https://github.com/easemob/webim-uniapp-d ...
- nuxt 登录注册加重置密码
<!-- 登录弹框 --> <div class="mask" v-show="flag"> <div class="m ...
- 基于U-Net网络的图像分割的MindStudio实践
摘要:本实践是基于Windows版MindStudio 5.0.RC3,远程连接ECS服务器使用,ECS是基于官方分享的CANN6.0.RC1_MindX_Vision3.0.RC3镜像创建的. 本文 ...
- 万万没想到,go的数据库操作,也能像php一样溜了
Hi,各位go的小伙伴. 很多人都是从php转过来的吧,不知道你们有没有发现,go界的orm并没有像php的orm一样好用.这篇文章里,我们认真的讨论下这个问题,并且会在后面提出解决方案. php的方 ...
- appium基本使用(Android)
一.环境搭建 详情可见:https://www.cnblogs.com/lihongtaoya/p/16971096.html 二.元素定位 详情可见:https://www.cnblogs.com/ ...
- xcode运行sh权限问题
Showing Recent Messages Command /bin/sh emitted errors but did not return a nonzero exit code to ind ...
- webpack 中 loader 和 plugin 的区别
通俗点讲loader是转换,plugin是执行比转换更复杂的任务,比如合并压缩等 loader:让webpack能够处理非js文件,然后你就可以利用 webpack 的打包能力,对它们进行处理. 例如 ...
- Quarkus入门体验,22ms启动一个Web服务
简介 Quarkus是类似于Spring Boot的框架,可以方便大家进行Java开发.利用GraalVM的魔力,能更好的适应云原生的场景,极快的启动速度. 创建项目 在IDEA就直接有创建Quark ...
- 多个仓库源配置及repositories和mirrors的配置
在实际项目中会存在多个仓库,包括我们自建的Nexus私有仓库和阿里仓,这里就需要设置多仓的顺序,防止jar包不在其中一个仓库时会自动从另外一个仓库中拉取. Maven的Setting配置中有mirro ...
- 【踩坑记录】@Transactional注解回滚不生效问题
@Transactional属于是Spring的常用事务处理注解了,最近在开发时偶然发现这个东西竟然不是100%生效的. 问题重现: 测试一个批处理方法,方法上加了@Transactional后执行, ...