本节课开始的是一个全新的篇章,用例设计。
前言:
先来看一个问题:如何用deepseek来生成测试用例呢?
本来在最初的很多同学眼里,无非就是直接把原始需求发给AI,然后让其生成测试用例就完事了。效果上来说呢,有一些瑕疵,比如生成的结果格式五花八门,比如生成的结果并不全面,漏测点太多。比如生成的结果中有重复的甚至是不可能存在的用例....
为此,便有一些同学会想进行迭代和优化:
比如在生成后格式上可以强烈要求固定格式,便于后续的自动整理/去重/统计/导出/阅读等等。
再比如可以在生成前的需求上下功夫,对于太长太多复杂功能的理解并不好,于是想着先拆分成一些子需求或者功能点,分别生成用例后再合起来。
还比如想到不同的功能点适用的用例设计方案也不同,可以针对不同功能点单独配置用例设计方案。
等等等等...
越改越多,越来越复杂,于是乎,自动化的AI用例生成平台就为此而诞生了,也就是本教程。
教程的这个平台分为三个阶段:
1. 生成前:在需求上下功夫
2. 生成中:生成测试用例
3. 生成后:对用例进行整理和使用等
那么,现在本教程进入到了哪个阶段了呢?当然是第二阶段了。
于是本节将正式开始做这个用例生成模块:
正文:
先来看看现在的平台样子:
我们首先,可以先对这个用例生成页面进行设计开发:
首先,我们先要获取到有多少个生成任务?
看一下:
也就是有13个生成任务。每一个生成任务,我的意思都是用一个子线程来做,用并发来跑。每一个子线程,都要带单独的原始需求+具体的用例设计方案+符合的需求功能点列表。
所以,我们这个用例生成页面,首先先应该给基本信息获取并展示出来,这样在漫长的生成过程中,使用者也可以有个数。
先来生成用例生成子页面吧:
新建:CaseMake.vue
内容如下:复制后需自行换行。
<template> <div style="text-align: left"> <span style="font-size: small">(生成结果较慢,请耐心等待,不要刷新或关闭页面)</span> <div> <br> <el-card class="custom-card"> <template #header> <div class="card-header"> <el-button type="success" @click="srs_fj" style="position: absolute;right: 10px">开始生成</el-button> <span>基本生成信息</span><span style="font-size: xx-small;color:gray">(请确保无误后点击右侧'开始生成按钮')</span> </div> </template> <div class="card-content"> </div> </el-card> </div> </div></template><script> import axios from 'axios' export default { name: "CaseMake", data(){ return{ old_srs:'', new_srs:'', } }, methods:{ }, watch: { 'project.id': { immediate: true, // 立即执行一次 handler(newId) { if (newId) { axios.get('http://localhost:8000/get_old_srs/?project_id='+this.project.id).then(res=>{ this.old_srs = res.data }) axios.get('http://localhost:8000/get_new_srs/?project_id='+this.project.id).then(res=>{ this.new_srs = res.data }) } } } }, props:["project"], computed: { name: { get() { return this.project.id; // 从prop获取初始值 }, } } }</script><style scoped>.card-content{ margin-bottom: 5px;}.input-group { display: flex; /* 启用 Flex 布局 */ align-items: center; /* 垂直居中 */ gap: 5px; /* 元素间距 */ /* 如果不需要响应式可以固定高度 */ height: 40px;}</style>然后去设置进入链接:ProjectDetail.vue中设置
结果如下:
看起来还不错!
然后就是把具体的数据信息拿过来了,看下面这段已经写好代码,你复制的也有:
事实上,我们已经有了old_srs ,new_srs 和 project.id了。也就不用再额外再写接口去获取了。直接用就好。
效果如下:可根据喜好自行添加:
好了,篇幅限制,本节到此结束,欢迎追更!
咨询培训请加v:qingwanjianhua
目前第十三期,有多重套餐选择,单买/+旧12期+新12期/全包永久 等。
任选一期上课截图如下: