TA的每日心情 | 奋斗 2018-3-8 09:22 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]测试小兵
|
发表于 2019-5-5 19:57:33
|
显示全部楼层
你好,有个问题请教一下。
我在执行python+appium+unittest时,老是无法响应。
appium客户端控制台报错信息:
> info: Starting App
> info: [debug] Attempting to kill all 'uiautomator' processes
> info: [debug] Getting all processes with 'uiautomator'
> error: Unhandled error: TypeError: undefined is not a function
> at [object Object].ADB.getPIDsByName (D:\Appium\loadspace\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:1037:8)
> at [object Object].ADB.killProcessesByName (D:\Appium\loadspace\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:1079:8)
> at [object Object].UiAutomator.start (D:\Appium\loadspace\Appium\node_modules\appium\lib\devices\android\uiautomator.js:29:12)
> at [object Object].<anonymous> (D:\Appium\loadspace\Appium\node_modules\appium\lib\devices\android\android.js:115:37)
> at D:\Appium\loadspace\Appium\node_modules\appium\node_modules\async\lib\async.js:607:21
> at D:\Appium\loadspace\Appium\node_modules\appium\node_modules\async\lib\async.js:246:17
> at iterate (D:\Appium\loadspace\Appium\node_modules\appium\node_modules\async\lib\async.js:146:13)
> at D:\Appium\loadspace\Appium\node_modules\appium\node_modules\async\lib\async.js:157:25
> at D:\Appium\loadspace\Appium\node_modules\appium\node_modules\async\lib\async.js:248:21
> at D:\Appium\loadspace\Appium\node_modules\appium\node_modules\async\lib\async.js:612:34
> at [object Object].<anonymous> (D:\Appium\loadspace\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:180:9)
> at ChildProcess.exithandler (child_process.js:742:7)
> at ChildProcess.emit (events.js:110:17)
> at maybeClose (child_process.js:1016:16)
> at Process.ChildProcess._handle.onexit (child_process.js:1088:5) context: [POST /wd/hub/session {"capabilities":{"firstMatch":[{}],"alwaysMatch":{"platformName":"Android","appium:platformVersion":"6.0","appium:deviceName":"H6ZPKR45DAB64DJB","appium:appPackage":"com.njzx.shbsetting","appium:appAc]
代码如下:测试用例AddTel.py中:
# 实现需求:打开守护设置----SOS设置,com.njzx.shbsetting/com.njzx.shbsetting.activity.ShbSettingActivity,输入号码添加紧急号码保存
# !/usr/bin/python
# encoding:utf-8
import unittest,time,random
from appium import webdriver
class test_add(unittest.TestCase):
# 环境准备
def setUp(self):
desired_caps = {}
desired_caps["platformName"] = 'Android'
desired_caps["platformVersion"] = '6.0'
desired_caps['deviceName'] = 'H6ZPKR45DAB64DJB'
desired_caps["appPackage"] = "com.njzx.shbsetting"
desired_caps["appActivity"] = ".activity.ShbSettingActivity"
desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True"
desired_caps["newCommandTimeout"] = "40"
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 环境还原
def tearDown(self):
self.driver.quit()
# 业务流程
def test_openAndAdd(self):
sos_setting = self.driver.find_element_by_id("com.njzx.shbsetting:id/layout_sos")
sos_setting.click()
add_from_input = self.driver.find_element_by_id("zte.shb.sossetting:id/add_from_input")
add_from_input.click()
self.driver.find_element_by_id("zte.shb.sossetting:id/et_num").click()
list_tel = [12213243213, 5678909876, 24542531241445, 2452452525565,24554654767, 245425425, 4545667657, 24254525]
# 随机 5次从list_tel选取一个并输入
for i in range(0,5):
select_tel = random.choice(list_tel)
list_tel.remove(select_tel)
print(list_tel)
self.driver.find_element_by_id("zte.shb.sossetting:id/et_num").send_keys(select_tel)
self.driver.find_element_by_id("zte.shb.sossetting:id/btn_add").click()
time.sleep(2)
path = "E:\\pycharm\\run\\Appium\\addSOS\\"
now_time = time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime(time.time()))
screen_picture = path + now_time + ".jpg"
self.driver.get_screenshot_as_file(screen_picture)
执行用例用例集中test_suit.py
# !/usr/bin/python
# encoding:utf-8
import unittest,time
import AddTel
from HTMLTestRunner import HTMLTestRunner
if __name__ == '__main__':
suite = unittest.TestSuite() # unittest模块中的TestSuite()创建一个对象接收testcase
suite.addTests(unittest.TestLoader().loadTestsFromNames(['AddTel.test_add']))
now_time = time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime(time.time()))
name = now_time + "htmlreport.html"
file_path = "E:\\pycharm\\run\\Appium\\addSOS\\htmlTestreport\\" + name
with open(file_path, 'wb') as f:# 模式wb
runner = HTMLTestRunner(stream=f,title=' Test Report',description='generated by HTMLTestRunner----Bling',verbosity=2)
runner.run(suite)
|
|