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

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

最新文章

  1. JDBC中的Statement和PreparedStatement的区别
  2. 【Linux_Fedora_应用系列】_3_如何利用Smplayer播放WMV格式的文件
  3. Linq使用Group By 1
  4. atitit.spring3 mvc url配置最佳实践
  5. 网狐6603棋牌游戏源码.rar
  6. poj 3140(树形dp)
  7. Declare Cusror of SQLServer
  8. hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
  9. WPF - 使用WPF创建图表
  10. 微信开发之门店管理{"errcode":40097,"errmsg":"invalid args hint: [xxxxxxx]"}
  11. Oracle EBS-SQL (BOM-3):检查期间新增Bom数量.sql
  12. jQuery插件综合应用1
  13. redis入门指南-第7章-管理
  14. 今天真开心,终于知道怎么打包apk了
  15. jqthumb.js缩略图插件-让缩略图正常显示而不变形
  16. 解决访问swaggerUI接口文档显示basic-error-controler问题
  17. Python语音识别(计算器)
  18. LibreOJ 6285. 数列分块入门 9
  19. 第十三章 ReentrantLock 简介
  20. ubuntu16.04忘记密码解决方案

热门文章

  1. 用 Java?试试国产框架 Solon v1.11.5(带视频)
  2. week_2
  3. [OpenCV实战]23 使用OpenCV获取高动态范围成像HDR
  4. Java基础篇——多线程
  5. [WPF]数据绑定失效的问题
  6. 04-Sed操作参数
  7. 基础分类算法_KNN算法
  8. 电脑本地安装不同版本MySQL
  9. 如何修剪git reflog历史
  10. ChatGPT集成之前,让我们复习一下即将过时的知识