结合diffy跑自动化
在上篇帖子中是实现了单个请求的访问,但当请求数据过多时,单个执行未免太麻烦了,比如需要执行以下内容,另一个原因是如果单独每次执行的化,传入参数过多,可能会有文本或者东西露掉。总之,使用起来不方便。


按照以往的案例,思路是脚本里面使用循环,去读取文件,然后解析文件的数据,进行拼接,然后请求,请求完成后,diffy去获取这些请求返回结果,继而完成回归测试。
1.首先去读文件,也就是需要最少一个用例数据放到txt中
curl 'http://10.6.6.44:8880/dataset/execueDPL' -H 'Content-Type: application/json; charset=utf-8' -H 'token:5ff8bfed4abcdae8bae44f2437a7f5a0' -d '@dpl.txt'

这样做的倒是能够读取了,但是只能读取了单个数据,也就是只传递过来第一个用例的数据。文件读取实现了,怎么实现文件里面数据的拆分,然后请求呢。看到了这个。
2.文件拆分
https://www.runoob.com/w3cnote/shell-read-line.html
https://blog.csdn.net/roler_/article/details/17504039
while read line
do
echo $line
done < test.txt
单独执行过后,文件line是有输出的,经过验证,while read line 可以读取文件的行数,文件内容以回车拆分,read 去读,然后放到line中,文件内容读完以后,循环退出。
https://blog.csdn.net/roler_/article/details/17504039
博客的解释是:read通过输入重定向,把file的第一行所有的内容赋值给变量line,循环体内的命令一般包含对变量line的处理;然后循环处理file的第二行、第三行。。。一直到file的最后一行。read命令也有退出状态,当它从文件file中读到内容时,退出状态为0,循环继续惊醒;当read从文件中读完最后一行后,下次便没有内容可读了,此时read的退出状态为非0,所以循环才会退出。
3.变量的使用
然后笔者套吧,就有了下面的写法:

执行脚本后的输出:

然后进行脚本的调试;

变量的地方出了问题,只好把变量去掉,单独引用line去执行,这种是可以的。

然后去尝试将其中的变量加上,以方便后期调试和环境迁移
问题出在变量的空格上,一开始定义的变量有空格,导致不认。需要将变量中的空格去掉

4.优化部分
接下来就是优化了,比如执行第几个,一共多少个用例,用例数据是什么。这些信息虽然不是很重要,但是对位定位还是很有效的,也比较直观。
思路是获取到一共多少行,然后通过变量i进行循环,每执行一次,根据i的值,进行输出,请求完成后,i+1,然后执行到文本结束

运行脚本后的输出如下:

不优化的时候,输出如下,太不直观了。

然后取文件数据行数-用例数据个数
awk '{print NR}' dpl.txt|tail -n1


去diffy里面查看输出结果

详细页的输出
