def setup_class(cls): devices = adb_devices(pattern) if devices == False: raise ("adb异常,未识别到设备") cls.now = time.strftime('%Y-%m-%d-%H-%M-%S') cls.Log = log.Logger() cls.w = r.copy_book() cls.Log.info(u"========%s测试开始:========" % __class__.__name__)
def setup_class(cls): devices=adb_devices(pattern) if devices is None: raise ("adb异常,未识别到设备") cls.Log = log.Logger() cls.w = r.copy_book() r.write_onlydata(cls.w, 1, 4, "BreakResult", sheetname=sheetname) # 修改定义result为BreakResult cls.Log.info(u"========%s测试开始:========" % __class__.__name__)
def t2(baudrate, serialname, product, logpath): global test_num, asr_succese_num, total_num Log = log.Logger(logpath) Log.info("=======================%s半双工链路ASR识别率测试========================" % product) # s = MySerial(buatrate, Log, serialname) print(1) s = serial.Serial(serialname, baudrate, timeout=60) print(2) # s = recvcmd(baudrate, Log, serialname, timeout=None) now = time.strftime('%Y-%m-%d-%H-%M-%S') result_path = os.path.join( Project_path.test_result_path, '%s-半双工ASRm45度噪音识别率测试--result%s.xls' % (product, now)) bookname = '015' booknames = [bookname] print(1) test_data = get_data(excel_path, result_path, booknames=booknames) for i in range(len(test_data)): Log.info("开始第%s条测试:%s" % (i + 1, test_data[i][:2])) except_value = test_data[i][1] wav_path = os.path.join(cmd_path, test_data[i][0] + ".wav") # wav 路径 test_result = "Fail" iswakeup = wakeup(s, Log) if not iswakeup: Log.error("連續三次未喚醒!") else: test_num += 1 Log.info("唤醒成功,即将进入播放音频进行ASR测试") rr = read_xls_news.Read_xls(result_path) rw = rr.copy_book() Log.info("开始播放测试音频【%s】" % wav_path) mypyaudio.play_audio(wav_path) asr_log = recvcmd(s, Log, 10) asr_result = re.findall(asr_mid_pattern, asr_log) if asr_result: asr = asr_result[0] mid = asr_result[1] if except_value == asr: test_result = "Pass" asr_succese_num += 1 else: asr = "False" mid = "False" asr_succese_rate = "%.2f%%" % (asr_succese_num / test_num * 100) Log.info("[%s]:用例【%s】ASR识别结果:%s" % (product, test_data[i][:2], asr)) Log.info("[%s]:用例【%s】ASR测试结果:%s" % (product, test_data[i][:2], test_result)) Log.info( "[%s]当前一共执行测试【%s次】,正常执行【%s】,其中ASR识别正确【%s次】,识别率为:【%s】" % (product, i + 1, test_num, asr_succese_num, asr_succese_rate)) rr.write_linedata(rw, i + 2, [asr, test_result, mid], sheetname=bookname, col=3) rr.write_onlydata(rw, 0, 1, asr_succese_rate, sheetname=bookname) rr.save_write(rw, result_path)
now = time.strftime('%Y-%m-%d-%H-%M-%S') excel_path = os.path.join(Project_path.test_date_path, 'AI云端ASR测试用例_test.xlsx') # 映射关系表,命令词 result_path = os.path.join(Project_path.test_result_path, '半双工ASRm45度噪音识别率测试--result%s.xls' % now) wakeup_path = os.path.join(Project_path.test_audio_path, "002M30_36_010003.wav") # #唤醒文件:你好小美的音频文件 cmd_path = "E:/ws/002M30_36/" asr_mid_pattern = "text\": \"(.*)\"[\\s\\S]*\"info\": \"(.*)\"" wakeup_sign = "ev\": \"wake up\"" in_fullduplex_sign = "full duplex mode" asr_pattern = "text\": \"(.*)\"" Log = log.Logger() Log.info("=======================半双工链路ASR识别率测试========================") class MySerial: def __init__(self, baudrate, serialname=None): plist = list(serial.tools.list_ports.comports()) if len(plist) <= 0: print("The Serial port can't find!") else: plist_0 = list(plist[0]) if serialname is None: serialname = plist_0[0] self.serialFd = serial.Serial(serialname, baudrate, timeout=60) print("check which port was really used >", self.serialFd.name) if self.serialFd.isOpen():
# _*_ coding:utf-8 _*_ import unittest, os, time from Common import getPathInfo, readConfig, HTMLTestRunnerCN_py3,log,sendemail #from tomorrow import threads nowtime = time.strftime("%Y%m%d%H%M%S") log_info = log.Logger().get_logger() on_off=readConfig.Read_Config().get_info('Email','on_off') class All_Test(object): def __init__(self): global report_path path=getPathInfo.get_Path() report_path = os.path.join(path, 'Report') #测试报告存放路径 if not os.path.exists(report_path): #判断Logs路径是否存在 os.mkdir(report_path) #创建Logs文件 self.caselist_path = os.path.join(path, "caselist.txt") #配置执行哪些测试文件的配置文件路径 self.casepath = os.path.join(path, "TestCase") #测试用例路径 self.caselist = [] #定义一个空列表 def get_caselist(self): ''' 读取caselist.txt文件中的用例名称,并添加到caselist元素组 ''' fb = open(self.caselist_path) #打开文件 for value in fb.readlines(): #遍历fb所有数据 if value != '' and not value.startswith('#'): #如果data非空且不以#开头 self.caselist.append(value.replace('\n', '')) #读取每行数据会将换行转换为\n,去掉每行数据中的\n fb.close() #关闭文件 return self.caselist #返回caselist
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from Base.setDriver import setDriver from Common import log from Base.findElement import WebTools log = log.Logger().get_logger() class aitool(): def login(self): driverPath = r'.\driver\chromedriver.exe' url = 'https://cs.whdtool.com/web//manager/#/login' driver = setDriver('chrome', driverPath) driver.get(url) try: user = WebTools().Get_text('class_name') user = user.text print(user) if user == '控制台登录': WebTools().Click('xpath', '//*[@id="app"]/div/div/div/div[2]/div[2]/div/div[1]/p') else: WebTools().WebDriverWait(3, 0.5, 'name', 'username') WebTools().Input('name', 'username', 'mengdou') WebTools().Input('password', 'name', '123456') WebTools().Click('xpath', '//*[@id="app"]/div/div/div/div[2]/div[2]/div/div[3]/form/div[3]/div/button') except Exception as e: print(e) if __name__ == '__main__':
def setup_class(cls): cls.now = time.strftime('%Y-%m-%d-%H-%M-%S') cls.Log = log.Logger() cls.Log.info(u"========%s测试开始:========" % __class__.__name__)
def setup_class(cls): devices = adb_devices(pattern) if devices is None: raise ("adb异常,未识别到设备") cls.Log = log.Logger() cls.Log.info(u"========%s测试开始:========" % __class__.__name__)
wakeup_path = "E:/ws/test_audio/002M30_36_010003.wav" # #唤醒文件:你好小美的音频文件 pre_path = "E:\ws\\002M30_36\天气预报.wav" # 前置指令,进入全双工用 re_expect = "广州今天天气怎么样" wavs_path = "E:\音频资源\\019\\" cmd = "adb shell logread -f" p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,encoding='utf8',errors='ignore') # 正則規則表達式 pattern = "\n(.*) device" wakeup_pattern = "ev(.*)wake up" asr_pattern = "asr\":\\t\"(.*)\"," startTTS_pattern = "ev(.*)speak request start" endTTS_pattern = "ev(.*)speak end" in_fullduplex_pattern = "info(.*)full duplex" Log = log.Logger(level="debug") def adb_devices(pattern): p = subprocess.Popen("adb devices", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf8').communicate()[0] try: devices_list = re.findall(pattern, p) assert len(devices_list) > 0 except: reslt = None else: reslt = devices_list return reslt