def post(self): _name = '测试用例' case = get_values('id', post=True) if isinstance(case, list): for g in case: if Wait.query.filter( Wait.testcase_id == g.get('id')).count() > 0: wait = Wait.query.filter( Wait.testcase_id == g.get('id')).first() db.session.delete(wait) case_group = TestCases.query.get(g.get('id')) db.session.delete(case_group) db.session.commit() return jsonify(msg='删除{}列表成功'.format(_name))
def get(self): username = get_values('username') user_count = User.query.filter(User.username == username).count() if user_count != 0: return jsonify(False) else: return jsonify(True)
def post(self): search, user_id, page, pagesize, _id = get_values( 'search', 'user_id', 'page', 'pagesize', 'id') if _id: _list = TestCaseScene.query.get(_id).to_dict() return jsonify({'list': _list}) user = User.query.get(user_id) _list = TestCaseScene.query.filter( TestCaseScene.user_id == user_id).order_by( TestCaseScene.timestamp.desc(), TestCaseScene.id.desc()).limit(pagesize).offset( pagesize * (page - 1)).all() count = TestCaseScene.query.filter( TestCaseScene.user_id == user_id).order_by( TestCaseScene.timestamp.desc(), TestCaseScene.id.desc()).count() model_scenes = TestCaseScene.query.filter( TestCaseScene.is_model == 1, TestCaseScene.user_id == user_id).all() model_cases = TestCases.query.filter( TestCases.is_model == 1, TestCases.user_id == user_id).all() case_groups = user.user_case_groups case_groups, model_scenes, model_cases = all_to_dict( _list, case_groups, model_scenes, model_cases, model=TestCaseScene) return jsonify({ 'list': _list, 'groups': case_groups, 'model_scenes': model_scenes, 'model_cases': model_cases, 'count': count })
def get(self): user_id = session.get('user_id') old_sql_regist_variable, testcase_id = get_values( 'old_sql_regist_variable', 'testcase_id') print('OldSqlVariableUpdateValidata:', old_sql_regist_variable, testcase_id) testcase = TestCases.query.get(testcase_id) if not old_sql_regist_variable: return jsonify(True) var = Variables.query.filter( Variables.name == testcase.old_sql_regist_variable, Variables.user_id == user_id).first() # print('OldSqlVariableUpdateValidata var:', var, var.id) if var: variable = Variables.query.filter( Variables.id != var.id, Variables.name == old_sql_regist_variable, Variables.user_id == user_id).count() else: variable = Variables.query.filter( Variables.name == old_sql_regist_variable, Variables.user_id == user_id).count() if variable != 0: return jsonify(False) else: return jsonify(True)
def post(self): _name = '测试场景' scene = get_values('id') if isinstance(scene, list): for g in scene: _g = TestCaseScene.query.get(g.get('id')) cases = TestCases.query.join(TestCaseScene, TestCases.testcase_scene_id == TestCaseScene.id). \ filter(TestCases.testcase_scene_id == g.get('id')).all() if len(cases) > 0: for case in cases: db.session.delete(case) db.session.delete(_g) db.session.commit() return jsonify(msg='删除{}列表成功'.format(_name)) _scene = TestCaseScene.query.get(scene.get('id')) print('scene', _scene) testcases = TestCases.query.join(TestCaseScene, TestCases.testcase_scene_id == TestCaseScene.id). \ filter(TestCases.testcase_scene_id == scene.get('id')).all() if len(testcases) > 0: for testcase in testcases: db.session.delete(testcase) db.session.delete(_scene) db.session.commit() return jsonify(msg='删除{}成功'.format(_name))
def get(self): scene_page, testcase_scene_id = get_values('scene_page', 'testcase_scene_id') if not testcase_scene_id or testcase_scene_id == "null": flash('请先设置场景模板') return redirect( url_for( 'testcase_scene_blueprint.testcase_scene_testcase_list', page=scene_page)) testcase_scene = TestCaseScene.query.get(testcase_scene_id) timestr = str(datetime.datetime.now().strftime('%Y%m%d%H%M%S')) if len(testcase_scene.name) > 30: name = testcase_scene.name[:21] + timestr else: name = testcase_scene.name + timestr testcase_scene_copy = TestCaseScene( name, description=testcase_scene.description, user_id=testcase_scene.user_id) db.session.add(testcase_scene_copy) db.session.commit() session['msg'] = '复制场景成功' return redirect( url_for('testcase_scene_blueprint.testcase_scene_testcase_list', page=scene_page))
def get(self): job_id, is_start = get_values('job_id', 'is_start') job = Job.query.get(job_id) job.is_start = is_start db.session.commit() scheduler_job(job) return 'OK'
def get_list(_object): search, user_id, page, pagesize, _all, _id = get_values('search', 'user_id', 'page', 'pagesize', 'all', 'id') print('search', search, user_id, page, pagesize, _id) if _id: data = _object.query.get(_id).get_dict() return jsonify({'list': data}) if not isinstance(page, int) or page <= 0: page = 1 if user_id: if _all: _list = _object.query.filter(_object.user_id == user_id, _object.name != ''). \ order_by(_object.timestamp.desc(), _object.id.desc()).all() count = len(_list) elif _object == Variables: _list = _object.query.filter(_object.user_id == user_id, _object.is_private == 0). \ order_by(_object.timestamp.desc(), _object.id.desc()).limit(pagesize).offset(pagesize*(page-1)).all() count = _object.query.filter(_object.user_id == user_id, _object.is_private == 0). \ order_by(_object.timestamp.desc(), _object.id.desc()).count() else: _list = _object.query.filter(_object.user_id == user_id, _object.name != ''). \ order_by(_object.timestamp.desc(), _object.id.desc()).limit(pagesize).offset(pagesize*(page-1)).all() count = _object.query.filter(_object.user_id == user_id, _object.name != ''). \ order_by(_object.timestamp.desc(), _object.id.desc()).count() all_to_dict(_list) else: _list, count = [{}], 0 return jsonify({'list': _list, 'count': count})
def get(self): mail = None job_id = get_values('id') job = Job.query.get(job_id) if job.mail_id: mail = Mail.query.get(job.mail_id) auto_send_mail(job, mail, is_async=False) return jsonify('邮件已开始发送')
def post(self): name, description, _id, user_id = get_values('name', 'description', 'id', 'user_id') return post_edit(CaseGroup, _id, '用例分组', name=name, description=description, user_id=user_id)
def post(self): user_id = session.get('user_id') testcases, testcase_scenes, description = get_values( 'testcases', 'testcase_scenes', 'description') print('JobAdd: ', testcases, testcase_scenes) job = Job(testcases, testcase_scenes, description, user_id) db.session.add(job) db.session.commit() # app.logger.info('message:insert into SchedulerJobs success, name: %s' % name) return json.dumps({"job_id": str(job.id)})
def post(self): user_id = session.get('user_id') name, job_id = get_values('name', 'job_id') print('TestCaseSceneUpdateValidate:', name, job_id) job = Job.query.filter(Job.id != job_id, Job.name == name, Job.user_id == user_id).count() if job != 0: return jsonify(False) else: return jsonify(True)
def post(self): name, value, description, _id, user_id = get_values( 'name', 'value', 'description', 'id', 'user_id') return post_edit(Variables, _id, '全局变量', name=name, value=value, description=description, user_id=user_id)
def post(self): _id, name, group_id, description, user_id = get_values( 'id', 'name', 'group_id', 'description', 'user_id') return post_edit(TestCaseScene, _id, '测试场景', name=name, description=description, group_id=group_id, user_id=user_id)
def post(self): username, password, project_group_id = get_values( 'username', 'password', 'project_group') user = User(username, password, project_group_id) db.session.add(user) db.session.commit() new_user = User.query.filter(User.username == username).first().id # add_pre_data_go(new_user) session['msg'] = '注册成功' return 'OK'
def login_required(): # print('username: '******'username'), request.path, type(session.get('username'))) if request.path in ('/logout', '/login', '/report_email', '/case_upload'): return if not session.get('user_id') and get_values('user_id'): # 处理gunicorn多个导致登陆后页面有user_id,但是server没有user_id session['user_id'] = get_values('user_id') print('before', session.get('user_id'), request.path) s_uid = session.get('user_id') if not s_uid: return jsonify(out='请重新登录') if request.method == 'POST': user_id = get_values('user_id') print('post', s_uid, user_id) if user_id: if isinstance(user_id, int): user_id = int(user_id) print('uid:', user_id, type(user_id)) if s_uid != user_id: print('重新登录') session['user_id'] = None return jsonify(out='请重新登录') elif user_id.isdigit(): if int(user_id) != s_uid: session['user_id'] = None return jsonify(out='请重新登录') else: session['user_id'] = None return jsonify(out='请重新登录') elif request.method == 'GET': user_id = get_values('user_id', post=False) print('uid get:', user_id, session.get('user_id'), type(user_id), type(session.get('user_id'))) if user_id: if user_id.isdigit(): if int(user_id) != s_uid: session['user_id'] = None return jsonify(out='请重新登录') else: session['user_id'] = None return jsonify(out='请重新登录')
def get(self): _id = get_values('id', post=False) download_path, name = TestCaseStartTimes.query.get(_id).filename.split( '/') print('download_path:', download_path) dirpath = os.path.join(session.get('app_rootpath'), download_path) # 这里是下在目录,从工程的根目录写起,比如你要下载static/js里面的js文件,这里就要写“static/js” print('dirpath:', dirpath) return send_from_directory( dirpath, name, as_attachment=True) # as_attachment=True 一定要写,不然会变成打开,而不是下载
def post(self): search, user_id, page, pagesize, _id = get_values( 'search', 'user_id', 'page', 'pagesize', 'id') print('case_list', search, user_id, page, pagesize, _id) if _id: case = TestCases.query.get(_id) if case.wait: _list = case.to_dict(case.wait[0].to_dict()) else: _list = case.to_dict() return jsonify({'list': _list})
def post(self): value = get_values('value') value = parse.unquote(value) try: if isinstance(eval(value), dict): return jsonify(True) else: return jsonify(False) except Exception as e: print(e) return jsonify(False)
def post(self): name, description, _id, value, user_id = get_values( 'name', 'description', 'id', 'value', 'user_id') print('edit', name, description) return post_edit(RequestHeaders, _id, '请求头部', name=name, value=value, description=description, user_id=user_id)
def get(self): scene_page, testcase_scene_id, testcase_id = get_values( 'scene_page', 'testcase_scene_id', 'testcase_id') if not testcase_id or testcase_id == "null": print('TestCaseSceneTestCaseCopy:', testcase_id, type(testcase_id)) flash('请先设置用例模板') return redirect( url_for( 'testcase_scene_blueprint.testcase_scene_testcase_list', page=scene_page)) testcase = TestCases.query.get(testcase_id) timestr = str(datetime.datetime.now().strftime('%Y%m%d%H%M%S')) if len(testcase.name) > 30: name = testcase.name[:21] + timestr else: name = testcase.name + timestr testcase_new = TestCases( name, testcase.url, testcase.data, testcase.regist_variable, testcase.regular, testcase.method, testcase.group_id, testcase.request_headers_id, testcase_scene_id, testcase.hope_result, user_id=testcase.user_id, old_sql=testcase.old_sql, new_sql=testcase.old_sql, old_sql_regist_variable=testcase.old_sql_regist_variable, new_sql_regist_variable=testcase.new_sql_regist_variable, old_sql_hope_result=testcase.old_sql_hope_result, new_sql_hope_result=testcase.new_sql_hope_result, old_sql_id=testcase.old_sql_id, new_sql_id=testcase.new_sql_id) db.session.add(testcase_new) db.session.commit() session['msg'] = '复制用例成功' if Wait.query.filter(Wait.testcase_id == testcase.id).count() > 0: old_wait = Wait.query.filter( Wait.testcase_id == testcase.id).first() wait = Wait(old_wait.old_wait_sql, old_wait.old_wait, old_wait.old_wait_time, old_wait.old_wait_mysql, old_wait.new_wait_sql, old_wait.new_wait, old_wait.new_wait_time, old_wait.new_wait_mysql, testcase_new.id) db.session.add(wait) db.session.commit() return redirect( url_for('testcase_scene_blueprint.testcase_scene_testcase_list', page=scene_page))
def post(self): to_user_list = get_values('to_user_list') print('to_user_list:', to_user_list) to_user_list = to_user_list.split(',') all_is_email = True for email in to_user_list: if re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", email) is None: all_is_email = False if all_is_email: return jsonify(True) else: return jsonify(False)
def get(self): user_id = session.get('user_id') new_sql_regist_variable = get_values('new_sql_regist_variable') if not new_sql_regist_variable: return jsonify(True) variable = Variables.query.filter( Variables.name == new_sql_regist_variable, Variables.user_id == user_id).count() if variable != 0: return jsonify(False) else: return jsonify(True)
def post(self): username, password = get_values('username', 'password') users = User.query.filter(User.username == username).all() print(users) if len(users) > 0: user = users[0] if user.password == password: session['user_id'] = user.id session['request_{}'.format(user.id)] = '' print('login user_id', session.get('user_id')) return jsonify(msg='登录成功', data={'user_id': user.id}) return jsonify(err='账号或密码错误') return jsonify(err='账号或密码错误')
def post(self): name, mail_id, user_id = get_values('name', 'email_id', 'user_id') if mail_id: mail = Mail.query.filter(Mail.id != mail_id, Mail.name == name, Mail.user_id == user_id).count() if mail != 0: return jsonify(False) else: return jsonify(True) mail = Mail.query.filter(Mail.name == name, Mail.user_id == user_id).count() if mail != 0: return jsonify(False) else: return jsonify(True)
def post(self): hope_result = get_values('hope_result') print('hope_result: ', hope_result) try: hope_results = hope_result.split(',') for hope_result in hope_results: com_method, _ = hope_result.split(':', 1) if com_method not in ["包含", "不包含", "等于", "不等于"]: return jsonify(False) return jsonify(True) except Exception as e: print(e) return jsonify(False)
def post(self): testcase_scene_id = get_values('id') testcase_scene = TestCaseScene.query.get(testcase_scene_id) testcases = testcase_scene.testcases testcase_results = [] for testcase in testcases: testcase_result, regist_variable_value = post_testcase( testcase=testcase) testcase_results.extend(['【%s】' % testcase.name, testcase_result]) testcase_results_html = '<br>'.join(testcase_results) print('TestCaseSceneRun: ', json.dumps({'testcase_results': testcase_results_html})) session['request_{}'.format(session['user_id'])] = '' return json.dumps(testcase_results_html)
def post(self): name, mysql_id, user_id = get_values('name', 'mysql_id', 'user_id') print('mysql_id') if mysql_id: mysql = Mysql.query.filter(Mysql.id != mysql_id, Mysql.name == name, Mysql.user_id == user_id).count() if mysql != 0: return jsonify(False) else: return jsonify(True) mysql = Mysql.query.filter(Mysql.name == name, Mysql.user_id == user_id).count() if mysql != 0: return jsonify(False) else: return jsonify(True)
def post(self): regular = get_values('regular') regular_list = regular.split(',') for _regular in regular_list: print('_regular:', _regular) if '$' in _regular: if _regular[1] != '.': return jsonify(False) if len(_regular.split('.')) != len(set(_regular.split('.'))): return jsonify(False) else: for key in _regular.split('.'): if ' ' in key: return jsonify(False) return jsonify(True)
def post(self): user_id, name, group_id = get_values('user_id', 'name', 'group_id') if group_id: case_group = CaseGroup.query.filter( CaseGroup.id != group_id, CaseGroup.name == name, CaseGroup.user_id == user_id).count() if case_group != 0: return jsonify(False) else: return jsonify(True) case_group = CaseGroup.query.filter( CaseGroup.name == name, CaseGroup.user_id == user_id).count() if case_group != 0: return jsonify(False) else: return jsonify(True)