上节课,我们搞定了需求分解功能(不包含AI接口),分解的结果以列表形式展示在前端。此刻需要操作人员人工确认一遍分解的是否正常,可以手动修补。
接下来就是点击保存按钮。将其保存起来的步骤了。
设计:
1. 我们需要一张专门存放分解后功能的数据表:DB_new_srs。并且每条数据都包含自身的ID,content内容,project_id所属项目id。
2. 前端点击保存按钮的时候,我们把修补后的这些分解的需求,集合成一个列表通过post接口传递给后端。
3. 后端接收到之后,需要先把这个项目之前关联的旧的那批分解后子需求给删除。再保存这新的一批分解后需求。
4. 保存的这些新的分解后的需求是用来在 下一个子页面【用例生成】中使用的。
开始写代码吧:
现在models.py中新建这个DB_new_srs表:
执行同步命令:
回到前端页面SrsSet.vue中,新建保存功能。传入new_srs和project_id
save_new_srs(){ axios.post('http://localhost:8000/save_new_srs/?project_id='+this.project.id,JSON.stringify(this.new_srs)).then( this.$message.success('保存成功') ) }
然后我们去后端urls.py写好这个新请求:
最后去views.py中写好这个函数:
需要注意的是,后端拿到的new_srs是一个列表,我们需要用for循环来循环的写入到数据表中:
最后我们要进行测试。
点击分解按钮后点保存
然后去后台数据库中看看是否存入成功:
需要先注册到admin.py:
然后输入网址:http://127.0.0.1:8000/admin/ 来查看:
可以看到,已经成功存入了这三条分解后的new_srs了。
然后我们需要先考虑一个问题。那就是要让这个优化需求子页面,一进入的时候,就已经显示了这些存储好的new_srs(old_srs可以不显示),为什么要显示呢?因为如果说后续生产测试用例时候出现问题,需要返回来修改之前new_srs的情况,就要先显示好。所以我们还需要以下改动:
SrsSet.vue中使用watch监听方法来通过请求/get_new_srs/来获取
然后去urls.py中设置:
最后去views.py中写好这个获取函数:
测试一下:刷新进入项目详情页后点击去看能不能自动显示:
到这里 ,还没有完。我们后台看一下目前的这三条分解后需求的id:
分别是1、2和3
在后台admin页面可以通过进入具体某一条数据后的url中查看id,这是身为测开的基础技巧,很多教程不会给你特意说明:比如我现在进入的是功能点2,url中就显示了这个 2
那我们要继续做什么呢?
我们要继续开发一个功能,就是当用户修改了这些new_srs后,我们要重新保存,重新保存的话。有两种方案,一种是在原始上修改,另一种是删掉旧的重新建立。
我们这里因为后续修改的这个功能可能会做的更加复杂,比如用户可以自行增删。所以建议使用第二个方案,就是删除旧的,新建新的。所以就要靠上述的查看具体数据的id这个方法来验证,是否真的做到了删旧建新,因为新的id一定会不同于旧的id。
找到views.py中的save_new_srs函数。修改如下:
然后我们随意修改一下这三条,保存看看:
然后刷新页面,再看看能不能成功显示(也就是测试一下是否存到了数据库)
测试后发现可以正常显示修改后的,然后我们再去后台admin中看一下他们的id:
此刻我们可以看到,仍有三条,需要点进去才知道id有没有改变:
可以看到,id为123的已经被删除了,现在是新的三条:456了。
所以到此,这个功能算是完成了。后续我们可以增加删增功能
好,本节到此结束,下节课再见!