示例#1
0
 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__)
示例#2
0
 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__)
示例#3
0
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)
示例#4
0
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():
示例#5
0
# _*_ 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
示例#6
0
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__':
示例#7
0
 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__)
示例#8
0
 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__)
示例#9
0
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