mock接口数据
这里是清安,上一章我们讲了requests请求以及unittest封装,文中提及了mock,以及还有一份写的mock--py文件。本章就来讲讲,如何mock接口数据。
首先我们先了解一下mock的作用以及flask框架。
什么是mock?
mock 的意思是模拟,也就是模拟接口返回的信息,用已有的信息替换它需要返回的信息,从实现对上级模块的测试。mock也分为两种:前端对接口的mock,后端单元测试中涉及的mock。
如果一个接口A返回的数据需要依赖于另一个接口B,当开发中B接口还未开发完全时候这里会需要用到Mock。
mock的作用?
1. 解决依赖问题:当我们测试一个接口或者功能模块的时候,如果这个接口或者功能模块依赖其他接 口或其他模块, 那么如果所依赖的接口或功能模块未开发完毕,那么我们就可以使用mock模拟被 依赖接口,完成目标接口的测试
mock的使用
上面的术语套用完毕,我们直接看代码一步步解析吧,这样才能看得懂一些。
解析:app.run()里面可以指定端口号,后续会讲,路由中可以指定请求接口类型是get还是post以及其他。
我们用国货之光ApiPost请求看看:
GET请求
我们指定请求方式以及端口号:
如果这里指定了Get你用了post请求,就会报错:
所以,也间接性的说明,接口文档还是非常重要的。指定了接口与接口的数据传递。拿不到指定的数据信息,接口不完整,这时候mock数据也是很重要的。
POST请求
看看下面的POST请求:
这里我们可以传参进来但是,却不能像get请求一样,可以在控制台看到返回值。
这也是两者的区别,也是体现了get与post的区别,get与post的区别各位就自行百度吧,还是很多这类回答的。
转换
<>表示转换,可加path可不加,如果加了path,那么qing/an这个路由就会原样输出,那么如果不加转换则会输出报错,我们来看看。
这里打印了类型,可以在控制台看到是什么类型的,类型也是可以转变的,path改成int或者float输出的就是对应的类型。我们用ApiPost请求看看吧:
然后我们看看不写<>中的path吧。
看,找不到页面了吧,这里可能你们显示的不是这个,因为我写了一个报错界面,后续也会讲到。
重定向
以上述为例,我们在最后加上/就会造成重定向,重定向的状态码有哪些了解吗?像300,301等等都是,看下面的这个例子:
这里是可以正常访问的,那么我们在后面加上一个/呢:
我们遇到这种情况其实在请求后面加上/也是可以正常访问的,那么重定向还有什么用处呢?
这里我请求case06实际是可以得到case07的返回值的,请求方式默认GET。
那么有人就会想上述的POST请求能不能也可以重定向到case07来呢,响应得到case07的结果,试试就知道了
302:指示已经将资源暂时地移动到了另一个位置,但将来的引用仍应使用原来的 URI 访问该资源。 保留此定义是为了向后兼容。
但是如果将POST换成GET,就可以访问成功的哟,这跟这两者的机制有关。
HTML
前面展示了一个报错是提示:哎呀,你得页面丢失了。这是一个HTML界面,这里就来说说用法。
在你的文件中需要存在一个这也的文件夹用于存放html5文件,然后我们可以在文件中写一些HTML5语法,比如:
或者你也可以插入一图进去。用于提示页面不存在。
启动服务后随便访问一个不存在的界面就能看到这个提示了:
当然我们还能通过路由进行传值到HTML中:
这里可以看到有一个{{name}},这个是用于接收值的,各位可以了解了解HTML传值的写法,也是可以在HTML中执行访问的方法,需要写一个form用于接收请求类型的方法。这里的话我们直接用Flask写,做一个了解。
这里我点的是预览,不然看到的就是返回的HTML代码,各位也可以在浏览器中访问,因为是GET请求,如果是POST请求就只能通过postman,jmeter,ApiPost工具进行访问。
- 点赞
- 收藏
- 关注作者
评论(0)