设计为三部分:
#前端页面部分设计
用例生成
#脚本设置,此时可以将脚本的设置分为五个部分
import { createApp } from 'vue'
import { createHead } from '@vueuse/head'
import App from './App.vue'
import router from './router'
const app = createApp(App)
const head = createHead()
app.use(router)
app.use(head)
app.mount('#app')
import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{
path: '/',
name: 'Home',
component: () => import('./App.vue')
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
import axios from 'axios';
class ApiService {
constructor() {
// 创建axios实例
this.http = axios.create({
baseURL: process.env.VUE_APP_API_URL || '/api',
timeout: 60000, // 大模型可能需要较长响应时间
headers: {
'Content-Type': 'application/json'
}
});
// 请求拦截器:添加认证信息等
this.http.interceptors.request.use(
config => {
const token = localStorage.getItem('token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
error => Promise.reject(error)
);
// 响应拦截器:统一错误处理
this.http.interceptors.response.use(
response => response.data,
error => {
// 处理常见错误
const errorMessage = error.response?.data?.message || '请求失败,请稍后重试';
console.error('API错误:', errorMessage);
return Promise.reject(error);
}
);
}
async saveTestCases(testCases, projectId) {
return this.http.post('/testcases/save', {
testCases,
projectId
});
}
}
@app.route('/api/save-test-cases', methods=['POST'])
def save_test_cases():
try:
data = request.get_json()
print(f"receive data: {data}")
if not data:
return jsonify({'error': '缺少数据'}), 400
data = data["testCases"]
# 获取数据库会话
db = SessionLocal()
try:
for item in data:
item.get('group1', '')
print("description", item.get('description'))
record = TestCase(
first_level_group=item.get('group1', ''),
second_level_group=item.get('group2', ''),
third_level_group=item.get('group3', ''),
case_name=item.get('name', ''),
priority=item.get('priority', ''),
creator=item.get('creator', ''),
case_description=item.get('description', ''),
preconditions=item.get('precondition', ''),
steps=item.get('steps', ''),
expected_results=item.get('expectedResult', ''),
remarks=item.get('notes', ''),
case_tags=item.get('tags', ''),
is_automated=item.get('automated', False),
related_interfaces=item.get('relatedApi', ''),
test_type=item.get('testType', ''),
related_project=item.get('project', '')
)
print("record", record)
db.add(record)
# 提交所有记录
db.commit()
return jsonify({
'message': '测试用例存储成功',
# 'id': record.id
})
except Exception as e:
db.rollback()
return jsonify({
'error': '测试用例存储失败',
'detail': str(e)
}), 500
finally:
db.close()