对于谷歌认证测试(xTS),分享一下自己在工作中编写的一些脚本。

算上实习,我在安卓测试工作岗位上已经做了近4年了,而在xTS模块测试中有差不多2年多时间。如今我已经换工作岗位,我想这辈子或许再也不会接触xTS、GTS、VTS、STS、Verififer等等测试了吧,曾经很努力很努力的学习相关知识,想想过程中付出的所有,对于我来说都是一种收获!现在我已经重新启航,进入了一个新的工作岗位。加油!
推荐一个在线工具网站:在线工具大全

xTS自动化执行:
1.配置文件:

[config]

test_item = GTS

executed_file = ../tools/gts-tradefed

executed_command = run gts -m GtsSimAppDialogTestCases -t com.google.android.simappdialog.gts.InstallCarrierAppActivityTest#testNotificationOnlyDuringSetupWizard -s BH950020JN

executed_command_1 = gts

full_run_number = 1

device_number = 3

device1 = 

device2 = 

device3_uicc = 设备SN号

device4_se = 设备SN号

device5_sim = 设备SN号

device_set_all = 设备SN号

2.python 部分代码(全部代码请访问:all code)

import os
import time
import re

try:
    from bs4 import BeautifulSoup
    import configparser
    from prettytable import PrettyTable
except:
    os.system("pip3 install bs4")
    os.system("pip3 install configparser")
    os.system("pip3 install prettytable")
    time.sleep(1)
    from bs4 import BeautifulSoup
    import configparser
    from prettytable import PrettyTable

def executed_xts(runfile, command, seconds):
    time.sleep(2)
    run = 'gnome-terminal -- ' + runfile + ' ' + command
    width = os.get_terminal_size().columns
    print("*".center(width, '*'))
    os.system(run)
    time.sleep(seconds)
    files = os.listdir("../results/")
    files = sorted(files)
    if len(files) % 2 == 0:
        if len(files) >= 2:
            return files[-2]
        else:
            return files[0]
    elif len(files) % 2 == 1:
        return files[-1]

def if_result_done(resul_file):
    files_zip = "../results/" + resul_file + ".zip"
    if os.path.exists(files_zip):
        return resul_file
    else:
        return "not done"

def check_results(file_name):
    filepath = os.getcwd()
    path = re.findall("(.*?).autoXts", filepath)
    new_path = path[0]
    url = os.path.join(new_path + "/results/" + file_name + "/test_result_failures_suite.html")
    with open(url, 'r') as f:
        soup = BeautifulSoup(f.read(), 'lxml').html
        result_pass = re.findall('.*?<td class="rowtitle">Tests Passed</td>.*?>(.*?)</.*?', str(soup))
        result_fail = re.findall('.*?<td class="rowtitle">Tests Failed</td>.*?>(.*?)</.*?', str(soup))
        result_module_done = re.findall('.*?<td class="rowtitle">Modules Done</td>.*?>(.*?)</.*?', str(soup))
        result_module_total = re.findall('.*?<td class="rowtitle">Modules Total</td>.*?>(.*?)</.*?', str(soup))
        results_list = [result_pass[0], result_fail[0], result_module_done[0], result_module_total[0]]
        if result_fail[0] == "0":
            return results_list, "done"
        fail_module_name = re.findall('.*?<td class="module" colspan="3"><a.*?>.*?(C.*?)</a>.*?', str(soup))
        se_cases = "CtsSecureElementAccessControlTestCases1" or \
                  "CtsSecureElementAccessControlTestCases2" or \
                  "CtsSecureElementAccessControlTestCases3" or \
                  "CtsSecureElementAccessControlTestCases1[instant]" or \
                  "CtsSecureElementAccessControlTestCases2[instant]" or \
                  "CtsSecureElementAccessControlTestCases3[instant]" or \
                  "VtsHalSecureElementV1_0Target"
        if se_cases in fail_module_name:
            return results_list, "se"
        sim_cases = "CtsTelecomTestCases" or \
                   "CtsTelecomTestCases2" or \
                   "CtsTelecomTestCases3" or \
                   "CtsTelephony2TestCases" or \
                   "CtsTelephony2TestCases[instant]" or \
                   "CtsTelephony3TestCases" or \
                   "CtsTelephonyProviderTestCases" or \
                   "CtsTelephonySdk28TestCases" or \
                   "CtsTelephonyTestCases" or \
                   "CtsPermissionTestCasesTelephony" or \
                   "CtsPermissionTestCasesTelephony[instant]" or \
                   "GtsTelephonyTestCases" or \
                   "GtsTelecomManagerTests" or \
                   "VtsHalAudioEffectV5_0Target" or \
                   "VtsHalAudioV2_0Target" or \
                   "VtsHalAudioV5_0Target" or \
                   "VtsHalRadioConfigV1_0Target"
        if sim_cases in fail_module_name:
            return results_list, "sim"
        uicc_cases = "CtsCarrierApiTestCases" or "GtsSimAppDialogTestCases"
        if uicc_cases in fail_module_name:
            return results_list, "uicc"
        return results_list, "all"
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值