def task_log(taskNo): logs = Case.case_log_search_all(taskNo) logs_lists = [] for log in logs: l = log_format(log) logs_lists.append(l) socket_io.emit('log', {'logs': logs_lists, 'task_no': taskNo}) return Success(msg='广播成功')
def build_report(self): # 测试时间 report_time = self._create_time.strftime("%Y-%m-%d %H:%M") # 被测试工程 from app.models.project import Project project = Project.query.filter_by(id=self.project_id).first() # 测试人员 tester = manager.user_model.query.filter_by( id=self.create_user).first() # task 成功个数 if self.success: input_success = '<input checked="true" class="filter" data-test-result="passed" hidden="true" ' \ 'name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span ' \ 'class="passed">' + str(self.success) + ' passed</span>' else: input_success = '<input checked="true" class="filter" disabled="true" data-test-result="passed" ' \ 'hidden="true" name="filter_checkbox" onChange="filter_table(this)" ' \ 'type="checkbox"/><span class="passed">' + str(self.success) + ' passed</span>' # task 失败个数 if self.fail: input_fail = '<input checked="true" class="filter" data-test-result="failed" hidden="true" ' \ 'name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span ' \ 'class="failed">' + str(self.fail) + ' passed</span>' else: input_fail = '<input checked="true" class="filter" disabled="true" data-test-result="failed" ' \ 'hidden="true" name="filter_checkbox" onChange="filter_table(this)" ' \ 'type="checkbox"/><span class="failed">' + str(self.fail) + ' failed</span>' # 用例记录 logs = Case.case_log_search_all(self.task_no) table_logs = '' for log in logs: result = 'Passed' if log['actual_result'] else 'Failed' expect = log['expect'] if log['expect'] else '' interface_return = log['result']['text'] if log['result'] else '' if log['actual_result']: table_tr = '<tbody class="passed results-table-row"><tr><td class="col-result">' + result + \ '</td><td class="col-name">' + log['name'] + \ '</td><td class="col-method">' + log['method_text'] + '</td><td class="col-url">' + \ log['url'] + '</td><td class="col-assertion">' + log['assertion_text'] + \ '</td><td class="col-expect">' + expect + \ '</td></tr><tr><td class="extra" colspan="6"><div class="empty log">' \ + interface_return + '</div></td></tr></tbody>' else: table_tr = '<tbody class="failed results-table-row"><tr><td class="col-result">' + result + \ '</td><td class="col-name">' + log['name'] + \ '</td><td class="col-method">' + log['method_text'] + '</td><td class="col-url">' + \ log['url'] + '</td><td class="col-assertion">' + log['assertion_text'] + \ '</td><td class="col-expect">' + expect + \ '</td></tr><tr><td class="extra" colspan="6"><div class="empty log">' \ + interface_return + '</div></td></tr></tbody>' table_logs = table_logs + table_tr download_file, download_directory, download_filename = self.copy_report_template( ) old_file = open(download_file, "r", encoding='utf-8') report = old_file.read() old_file.close() new_file = report.replace('{{ logs }}', table_logs).replace( '{{ input_success }}', input_success).replace( '{{ input_fail }}', input_fail).replace('{{ project }}', project.name).replace( '{{ report_time }}', report_time).replace('{{ tester }}', tester.username) with open(download_file, "w", encoding='utf-8') as f: f.write(new_file) return download_file, download_directory, download_filename
def case_logs_all(): form = CaseLogsSearchForm().validate_for_api() cases = Case.case_log_search_all(form.task.data) return jsonify(cases)