打开设备上的应用
1 from appium import webdriver
2 import os
3
4 #系统命令行 输入adb命令,安装apk到手机/模拟器
5 # os.system(r'adb install D:\1-qyk\4-学习资料\XYAssessment-v2.1.0.apk') #使用了app命令可以不执行这条
6
7 #组装参数 代码要操作哪个设备上的哪个APP
8 desired_caps={}
9 desired_caps['platformName']='Android' #系统名称,Windows只能操作安卓,IOS先按下不表
10
11 #使用adb devices命令可以查看已连接的设备;
12 #有多个执行机已连接时,要选择执行设备,以下三个参数要填写正确
13 desired_caps['platformVersion'] = '9' #使用命令adb shell getprop ro.build.version.release 查看
14 desired_caps['deviceName'] = '3EP7N18B16022249' #这是huawei mate 20 设备名
15 desired_caps['udid'] = '3EP7N18B16022249' #填一样的
16
17 # desired_caps['platformVersion'] = '6.5.0'
18 # desired_caps['deviceName'] = '127.0.0.1:62001'
19 # desired_caps['udid'] = '127.0.0.1:62001'
20
21 #如果已经安装了包,用以下两个参数打开app
22 desired_caps['appPackage']='com.xinyan.assessmentsdk' #APP包名
23 desired_caps['appActivity']='riskassessmentsdk.xinyan.com.xyriskassessmentsdk.InputActivity' #adb shell "logcat | grep START" 输入命令后再启动App,查看最新的输出
24
25 #使用app参数,每次都会安装新的包;如果用它,最开始的命令可以不执行
26 desired_caps['app'] = r'D:\1-qyk\4-学习资料\XYAssessment-v2.1.0.apk'
27
28 #将连接appium server的地址(这里使用默认的端口,如果要多开可以自己修改端口),以及之前组装的参数传入
29 driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
30
31 print('success')
32
33 driver.quit()
结合unittest来编写自动化测试案例
import os
import json
import yaml
from time import sleep
import unittest
from appium import webdriver
# Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
with open(r'start_configuration',encoding='utf-8') as fp:
config=yaml.full_load(fp)
class SimpleAndroidTest(unittest.TestCase):
def setUp(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
#夜神模拟器配置
desired_caps['platformVersion'] = config['夜神']['platformVersion']
desired_caps['deviceName'] = config['夜神']['deviceName']
desired_caps['udid'] = config['夜神']['udid']
desired_caps['appPackage'] = 'com.xinyan.assessmentsdk' # APP包名
desired_caps['appActivity'] = 'riskassessmentsdk.xinyan.com.xyriskassessmentsdk.InputActivity' # 启动的主Acitivity名
desired_caps['unicodeKeyboard'] = 'True' # 使用Unicode编码方式发送字符串
desired_caps['resetKeyboard'] = 'True' # 隐藏键盘
try:
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
except:
desired_caps['app'] = PATH(r'D:\1-qyk\4-学习资料\XYAssessment-v2.1.0.apk')
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
def test_click_nextstep(self):
'''冒烟,点击下一步进入第二页面成功'''
el = self.driver.find_element_by_class_name('android.widget.Button')
el.click()
el=self.driver.find_elements_by_accessibility_id('com.xinyan.assessmentsdk:id/functionSelect')
print('case1_success!')
def test_full_rador_hit(self):
'''输入信息,全景雷达报告生成成功'''
el = self.driver.find_element_by_class_name('android.widget.Button')
el.click() #点击下一步
el=self.driver.find_element_by_id('com.xinyan.assessmentsdk:id/functionSelect') #存在产品类型的输入框
el.click() #点击,弹出转盘选择产品类型
el=self.driver.find_element_by_name('确定') .click() #点击产品类型的输入框
self.driver.find_element_by_id('com.xinyan.assessmentsdk:id/id_name') .send_keys(u'陆曙') #身份证姓名输入
self.driver.find_element_by_id('com.xinyan.assessmentsdk:id/id_no') .send_keys('522627199205170415') #身份证号输入
self.driver.find_element_by_id('com.xinyan.assessmentsdk:id/startRisAssessment') .click() #点击开始智能评估
try:
self.driver.find_element_by_id('com.xinyan.assessmentsdk:id/tvAgree').click()
except:
pass
print('2')
rslt=self.driver.find_element_by_id('com.xinyan.assessmentsdk:id/result') .get_attribute('text') #获取返回结果
print(rslt) #打印返回结果
assert json.loads(rslt)['radarInfo']['desc']=='查询成功' #校验返回结果
print('case2_success!')
def tearDown(self):
# end the session
self.driver.quit()
if __name__ == '__main__':
unittest.main()