addproject

This commit is contained in:
qiaoxinjiu
2026-01-22 19:10:37 +08:00
commit 6994b185a3
184 changed files with 21039 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
# -*- 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()