def run(self, request, pk=None): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') # 获取环境变量env_id env = Envs.objects.get(id=env_id) # 创建测试用例所在目录名 testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), "%Y%m%d%H%M%S%f")) if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) module_objs = Modules.objects.filter(project=instance) if not module_objs.exists(): # 如果此项目下没有接口, 则无法运行 data_dict = {"msg": "此项目下无接口, 无法运行!"} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) for inter_obj in module_objs: testcase_objs = Testcases.objects.filter(module=inter_obj) for one_obj in testcase_objs: common.generate_testcase_files(one_obj, env, testcase_dir_path) # 运行用例 return common.run_testcase(instance, testcase_dir_path, request.data.get('is_email'), email=request.user.email)
def run(self, request, *args, **kwargs): testsuit = self.get_object() serializer = self.get_serializer(instance=testsuit, data=request.data) serializer.is_valid(raise_exception=True) # 此时的data为校验后的数据 datas = serializer.validated_data env_id = datas.get('env_id') # 将文件夹时间戳处理化 testcase_dir_path = os.path.join( SUITES_DIR, datetime.strftime(datetime.now(), '%Y-%m-%d_%H.%M.%S_%f')) os.mkdir(testcase_dir_path) # 获取环境变量对象 env_obj = Envs.objects.get(id=env_id) # 从include中获取运行接口id include = eval(testsuit.include) if not include: data = {'detail': '此套件下无接口,无法运行'} return Response(data, status=status.HTTP_400_BAD_REQUEST) # 获取套件下所有接口 for interface_id in include: testcase_list = Testcases.objects.filter(interface_id=interface_id) for case_obj in testcase_list: common.generate_testcase_files(case_obj, env_obj, testcase_dir_path) return common.run_testcase(testsuit, testcase_dir_path)
def run(self, request, pk=None): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') # 获取环境变量env_id env = Envs.objects.get(id=env_id) # 创建测试用例所在目录名 testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), "%Y%m%d%H%M%S%f")) if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) include = eval(instance.include) if len(include) == 0: data_dict = {"detail": "此套件下未添加用例, 无法运行!"} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) # 将include中的接口id转化为此接口下的用例id include = get_testcases_by_interface_ids(include) for testcase_id in include: testcase_obj = Testcases.objects.filter(id=testcase_id).first() if testcase_obj: common.generate_testcase_files( testcase_obj, env, testcase_dir_path) # 传入接口对象,环境 ,用例目录 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, pk=None): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') # 指定测试文件存放目录 suites+时间 testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) # 创建文件夹 if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) # 获取环境 env = Envs.objects.filter(id=env_id, is_delete=False).first() interface_objs = Interfaces.objects.filter(is_delete=False, project=instance) if not interface_objs.exists(): #如果项目下没有接口则无法运行 data_dict = {"detail": "此项目下无接口,无法运行!"} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) for inter_obj in interface_objs: testcase_objs = Testcases.objects.filter(is_delete=False, interface=inter_obj) for one_obj in testcase_objs: # 生成yaml用例文件 common.generate_testcase_files(one_obj, env, testcase_dir_path) # 运行用例 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, pk=None): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') # 获取环境变量env_id env = Envs.objects.get(id=env_id) # 创建测试用例所在目录名 testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), "%Y%m%d%H%M%S%f")) if not os.path.exists(testcase_dir_path): os.makedirs(testcase_dir_path) testcase_objs = Testcases.objects.filter(interface=instance) if not testcase_objs.exists(): # 如果此接口下没有用例, 则无法运行 data_dict = {"detail": "此接口下无用例, 无法运行!"} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) for one_obj in testcase_objs: common.generate_testcase_files( one_obj, env, testcase_dir_path) # 传入接口对象,环境 ,用例目录 # 运行用例 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, *args, **kwargs): project = self.get_object() serializer = self.get_serializer(instance=project, data=request.data) serializer.is_valid(raise_exception=True) # 此时的data为校验后的数据 datas = serializer.validated_data env_id = datas.get('env_id') # 将文件夹时间戳处理化 testcase_dir_path = os.path.join(SUITES_DIR, datetime.strftime(datetime.now(), '%Y-%m-%d_%H.%M.%S_%f')) os.mkdir(testcase_dir_path) # 获取环境变量对象 env_obj = Envs.objects.get(id=env_id) # 获取项目下所有接口 interface_objs = Interfaces.objects.filter(project=project) if not interface_objs.exists(): data = { 'detail': '此项目下无接口,无法运行' } return Response(data, status=status.HTTP_400_BAD_REQUEST) for interface_obj in interface_objs: testcase_objs = Testcases.objects.filter(interface=interface_obj) for case_obj in testcase_objs: common.generate_testcase_files(case_obj, env_obj, testcase_dir_path) # 运行用例 return common.run_testcase(project, testcase_dir_path)
def run(self, request, *args, **kwargs): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid() datas = serializer.validated_data env_id = datas.get('env_id') testcase_dir_path = os.path.join(settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) # first()返回queryset查询集第一项 env = Envs.objects.filter(id=env_id, is_delete=False).first() # 项目下所有接口 testcase_objs = Testcases.objects.filter(is_delete=False, interface=instance) if not testcase_objs.exists(): data_dict = { 'detail': '此接口下没有用例,无法运行' } return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) for one_obj in testcase_objs: common.generate_testcase_files(one_obj, env, testcase_dir_path) # 运行用例 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, pk=None): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') # 指定测试文件存放目录 suites+时间 testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) # 创建文件夹 if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) # 获取环境 env = Envs.objects.filter(id=env_id, is_delete=False).first() include = eval(instance.include) if len(include) == 0: data_dict = {"detail": "此套件下无接口,无法运行!"} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) # 将include中得接口id转化位此接口得用例ID include = get_testcases_by_interface_ids(include) for testcase_id in include: testcase_obj = Testcases.objects.filter(is_delete=False, id=testcase_id).first() if testcase_obj: # 生成yaml用例文件 common.generate_testcase_files(testcase_obj, env, testcase_dir_path) # 运行用例 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, pk=None): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') #创建测试用例所在目录名 testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) env = Envs.objects.filter(id=env_id, is_delete=False).first() interface_objs = Interfaces.objects.filter(is_delete=False, project=instance) if not interface_objs.exists(): data_dict = {'detail': '此项目下无接口,无法运行'} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) for inter_obj in interface_objs: testcase_objs = Testcases.objects.filter(is_delete=False, interface=interface_objs) for one_obj in testcase_objs: common.generate_testcase_files(one_obj, env, testcase_dir_path) return common.run_testcase(instance, testcase_dir_path)
def run(self, request, *args, **kwargs): testcase = self.get_object() serializer = self.get_serializer(instance=testcase, data=request.data) serializer.is_valid(raise_exception=True) # 此时的data为校验后的数据 datas = serializer.validated_data env_id = datas.get('env_id') # 将文件夹时间戳处理化 testcase_dir_path = os.path.join(SUITES_DIR, datetime.strftime(datetime.now(), '%Y-%m-%d %H.%M.%S %f')) os.mkdir(testcase_dir_path) # 获取环境变量对象 env_obj = Envs.objects.get(id=env_id) # 生成yaml用例文件 common.generate_testcase_files(testcase, env_obj, testcase_dir_path) # 运行用例,返回报告 return common.run_testcase(testcase, testcase_dir_path)
def run(self, request, *args, **kwargs): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env_id = datas.get('env_id') testcase_dir_path = os.path.join(settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) os.mkdir(testcase_dir_path) env = Envs.objects.filter(id=env_id, is_delete=False).first() #生成yaml用例文件 common.generate_testcase_files(instance, env, testcase_dir_path) #运行用例 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, *args, **kwargs): # 1. 获取模型类对象 instance = self.get_object() # 2. 校验 serializer = self.get_serializer(instance, data=request.data) serializer.is_valid(raise_exception=True) datas = serializer.validated_data env = Envs.objects.get(id=datas.get('env_id')) # 3. 生成yaml测试用例文件 testcase_dir_path = os.path.join(settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) common.generate_testcase_files(instance, env, testcase_dir_path) # 传入接口对象,环境 ,用例目录 # 4. 运行用例 return common.run_testcase(instance, testcase_dir_path)
def run(self, request, *args, **kwargs): instance = self.get_object() serializer = self.get_serializer(instance, data=request.data) serializer.is_valid() datas = serializer.validated_data env_id = datas.get('env_id') testcase_dir_path = os.path.join( settings.SUITES_DIR, datetime.strftime(datetime.now(), '%Y%m%d%H%M%S%f')) if not os.path.exists(testcase_dir_path): os.mkdir(testcase_dir_path) # first()返回queryset查询集第一项 env = Envs.objects.filter(id=env_id, is_delete=False).first() include = eval(instance.include) if len(include) == 0: data_dict = {'detail': '此套件下未添加用例,无法运行'} return Response(data_dict, status=status.HTTP_400_BAD_REQUEST) # 将include中的接口id转换为此接口下的id include = get_testcases_by_interface_ids(include) for testcase_id in include: testcase_objs = Testcases.objects.filter(is_delete=False, id=testcase_id).first() if testcase_objs: # 生成yml文件 common.generate_testcase_files(testcase_objs, env, testcase_dir_path) # 运行用例 return common.run_testcase(instance, testcase_dir_path)