Files
smart-management-auto-test/base_framework/platform_tools/case_runner10.py
qiaoxinjiu 6994b185a3 addproject
2026-01-22 19:10:37 +08:00

105 lines
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
__author__ = 'huaxuemin'
import argparse
from runner9 import CaseRunner
usage_info = '''
usage:
$ case_runner.py -w %WORKSPACE% -c %case_path% -t tc1,tc2 -i p0,p1,p2 -e norun,del -r True
run tag cases in workspace
'''
def usage():
print(usage_info)
exit(-1)
def get_test_case_name(build_id):
try:
if build_id:
import pymysql
db = pymysql.connect(host="mysql.qa.huohua.cn", user="qa-dev", password="jaeg3SCQt0", database="sparkatp",
charset='utf8')
cursor = db.cursor()
get_sql = "SELECT test_case_id FROM sparkatp.build_params WHERE build_info_id={}".format(build_id)
cursor.execute(get_sql)
res = cursor.fetchone()
test_case_name = ""
if res:
test_case_name = res[0].replace("(", "*").replace(")", "*").replace(" ", "*")
cursor.close()
db.close()
return test_case_name
except Exception as e:
print(e)
return ""
def main():
parser = argparse.ArgumentParser(description="This is for introduction parameter")
parser.add_argument("-w", dest='workspace', help="case_runner workspace")
parser.add_argument("-c", dest='case_path', help="case path")
parser.add_argument("-t", dest='test_case', default='', help="test case")
parser.add_argument("-i", dest='include', default='', help="include tag")
parser.add_argument("-e", dest='exclude', default='', help="exclude tag")
parser.add_argument("-r", dest='rerun', default='true', help="rerun failed case")
parser.add_argument("-env", dest='special_env', default='', help="special env")
parser.add_argument("-team", dest='team', default='', help="job name with team ")
parser.add_argument("-penv", dest='physics_env', help="QA or SIM", default='QA')
parser.add_argument("-b", dest='business', help="hh or hhi", default='hh')
parser.add_argument("-b_id", dest='build_info_id', help="build_info_id", default='')
parser.add_argument("-b_url", dest='build_url', help="build_url", default='')
parser.add_argument("-is_db", dest='is_use_db', help="is_use_db", default='0')
args = parser.parse_args()
if args.workspace is None:
usage()
workspace = args.workspace
case_path = args.case_path
test_case = args.test_case
include = args.include
exclude = args.exclude
rerun = args.rerun
special_env = args.special_env
team = args.team.split("-")[0]
physics_env = args.physics_env
business = args.business
build_info_id = args.build_info_id
build_url = args.build_url
is_use_db = args.is_use_db
if str(is_use_db) == "1" and build_info_id:
test_case_name = get_test_case_name(build_info_id)
test_case = test_case_name if test_case_name else test_case
# if team not in ["CC", "EN", "H2R", "LaLive", "SCM", "TMO", "TO", "ASOP", "ASTWB", "ASORG"]:
# team = ""
case_runner = CaseRunner(workspace, case_path, test_case, include, exclude, rerun, special_env, team, physics_env,
business)
try:
# 更新独立环境代号到配置文件
case_runner.update_platform()
# 检查工作目录名字对应的端口,有就使用,没有就分配
case_runner.assign_port()
# 查找对应端口进程并杀掉
case_runner.check_port()
# 更新KWL和RF中的端口
case_runner.update_port()
# 更新重名测试套
case_runner.update_suite()
# 启动KWL
case_runner.start_kwl()
# 构建用例
case_runner.run_cases()
# 构建完成后停止KWL
case_runner.check_port()
except Exception as e:
print(e)
# 构建完成后入库build_url
case_runner.record_build_url(build_info_id, build_url)
if __name__ == '__main__':
main()