计算器app界面,做appium自动化测试,做加减乘除等操作,基于unittest框架,代码如下:
from appium import webdriver
from time import sleep
import unittest
from appium.webdriver.common.touch_action import TouchAction
class TestItest(unittest.TestCase):
@classmethod
def setUpClass(self):
self.desired_caps = {'platformName': 'Android',
# 设备名
'deviceName': '0123456789ABCDEF',
# 设备的平台版本,是安卓8.1
'platformVersion': '8.1.0',
# app 包名
'appPackage': 'com.android.calculator2',
# app包名+app activity
'appActivity': '.Calculator',
# 使用unicode输入法
'unicodeKeyboard': "True",
# 重置输入法到初始状态
'resetKeyboard': "True",
# 启动app时不要清除app里的原有的数据
'noReset': "True"
}
self.dr=webdriver.Remote('http://127.0.0.1:4723/wd/hub',self.desired_caps)
sleep(5)
@classmethod
def tearDownClass(self):
sleep(2)
self.dr.close_app()
def test_1_Div(self):
# 除法运算963/321=3
self.dr.find_element_by_id('digit_9').click()
self.dr.find_element_by_id('digit_6').click()
self.dr.find_element_by_id('digit_3').click()
self.dr.find_element_by_id('op_div').click()
self.dr.find_element_by_id('digit_3').click()
self.dr.find_element_by_id('digit_2').click()
self.dr.find_element_by_id('digit_1').click()
self.dr.find_element_by_id('eq').click()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1,'3')
self.dr.find_element_by_id('clr').click()
sleep(2)
def test_2_Div(self):
# 除法运算963/0
self.dr.find_element_by_id('digit_9').click()
self.dr.find_element_by_id('digit_6').click()
self.dr.find_element_by_id('digit_3').click()
self.dr.find_element_by_id('op_div').click()
self.dr.find_element_by_id('digit_0').click()
self.dr.find_element_by_id('eq').click()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1,"Can't divide by 0")
sleep(1)
action1 = TouchAction(self.dr)
e1 = self.dr.find_element_by_id('del')
action1.long_press(e1).wait(4000).perform()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1, '')
sleep(2)
def test_3_Multi(self):
# 乘法运算258* 0.5=129
self.dr.find_element_by_id('digit_2').click()
self.dr.find_element_by_id('digit_5').click()
self.dr.find_element_by_id('digit_8').click()
self.dr.find_element_by_id('op_mul').click()
self.dr.find_element_by_id('digit_0').click()
self.dr.find_element_by_id('dec_point').click()
self.dr.find_element_by_id('digit_5').click()
self.dr.find_element_by_id('eq').click()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1,'129')
self.dr.find_element_by_id('clr').click()
sleep(2)
def test_4_plus(self):
# 加法运算147 + 3=150
self.dr.find_element_by_id('digit_1').click()
self.dr.find_element_by_id('digit_4').click()
self.dr.find_element_by_id('digit_7').click()
self.dr.find_element_by_id('plus').click()
self.dr.find_element_by_id('digit_3').click()
self.dr.find_element_by_id('eq').click()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1,'150')
sleep(2)
def test_5_subtract(self):
# 减法运算147 -147=0
self.dr.find_element_by_id('digit_1').click()
self.dr.find_element_by_id('digit_4').click()
self.dr.find_element_by_id('digit_7').click()
self.dr.find_element_by_id('minus').click()
self.dr.find_element_by_id('digit_1').click()
self.dr.find_element_by_id('digit_4').click()
self.dr.find_element_by_id('digit_7').click()
self.dr.find_element_by_id('eq').click()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1,'0')
self.dr.find_element_by_id('clr').click()
def swipeLeft(self,dr, n, t=2000):
#向左滑动屏幕
L = self.dr.get_window_size()
x1 = L['width'] * 0.9
x2 = L['width'] * 0.2
y1 = L['height'] * 0.5
for i in range(n):
self.dr.swipe(x1, y1, x2, y1, t)
def swipeRight(self,dr, n, t=2000):
#向右滑屏
L = self.dr.get_window_size()
x1 = L['width'] * 0.2
x2 = L['width'] * 0.9
y1 = L['height'] * 0.5
for i in range(n):
self.dr.swipe(x1, y1, x2, y1, t)
def test_6_ScientificCalc(self):
#科学计算器对9开平方根
self.swipeLeft(self.dr,1)
sleep(1)
self.dr.find_element_by_id('op_add').click()
sleep(1)
self.swipeRight(self.dr,1)
sleep(2)
self.dr.find_element_by_id('digit_9').click()
self.dr.find_element_by_id('eq').click()
result1 = self.dr.find_element_by_id('result').text
self.assertEqual(result1,'3')
self.dr.find_element_by_id('clr').click()
if __name__ == '__main__':
unittest.main()