【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模式进行了二次封装,将日志,等待以及异常截 ...
随机推荐
- MongoDB从入门到实战之MongoDB简介
前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能.动态扩缩容.高可用.海量数据存储.数据价值较低.高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通 ...
- LeetCode HOT 100:最大子数组和
题目:53. 最大子数组和 题目描述: 给你一个整数数组,在该数组的所有子数组中,找到一个子数组中所有元素相加和最大,返回这个最大的和.子数组就是一个数组中,由一个或几个下标连续的元素,组成的小数组, ...
- 第二篇:前端基础之CSS
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...
- vue 引入vant 上传图片oss处理
<van-uploader :before-read="beforeRead" v-model="product.images" max-size=&qu ...
- 9、IDEA回退Git版本
转载自 在工作中有时候会要求我们将以前提交的代码新开一个分支,而把之前提交的分支回退到以前某个版本. 1.通过IDEA查看Git历史记录,复制当前版本号. 2.记录当前版本号后,再复制你要回退的版本号 ...
- C组合方案
递归实现组合型枚举 从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的顺序输出所有方案,每行 1 个. ...
- Ubuntu 安装 office
推荐安装 LibreOffice wget https://free.nchc.org.tw/tdf/libreoffice/stable/7.4.3/deb/x86_64/LibreOffice_7 ...
- VS Code離線安裝插件報錯Unable to install extension 'dart-code.flutter' as it is not compatible with VS Code '1.51.1'.
VS Code離線安裝插件報錯Unable to install extension 'dart-code.flutter' as it is not compatible with VS Code ...
- Vue导出模板、使用前端js办法导出表格数据、导入表格前端读取表格数据、导入表格发送后端读取数据
以下是几种用的较多的函数方法,可以参考使用. // 導出1 myExport() { // post請求文件寫法1 const url = 'http://XXXX/XXXX/XXXX/XXXX' c ...
- Lamdba表达式的无参数无返回值的练习-Lambda表达式有参数有返回值的练习
Lamdba表达式的无参数无返回值的练习 题目给定一个厨子Cook接口,内含唯一的抽象方法makeFood,且无参数.无返回值.如下∶public interface cook {void makeF ...