Python —— Mock接口测试_python实现mock(1)

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2.可以利用web框架模拟,Django Flask —python web开发框架,Flask的特点就是,结构简单,容易入门

一:利用flask编写一个最简单的接口

安装Flask, 在dos窗口输入:pip install flask

搭建mock服务端代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21import random import time from flask``import Flask,request,json #实例化一个web服务对象 app``=``Flask(__name__) #创建一个方法来处理请求 #定义一个路由--访问服务的根目录就可以得到结果 @app``.route(``'/'``) def hello(): return '<h1>hello flask</h1>' #构造一个接受post请求的响应 @app``.route(``'/post'``,methods``=``[``'POST'``]) def test_post(): #处理接口发送过来的两个参数,将两个参数合并成一个字符串返回 d1``=``request.form[``'d1'``] d2``=``request.form[``'d2'``] return d1``+``d2 if __name__``=``= '__main__'``: #运行服务,并确定服务运行的IP和端口 app.run(``'127.0.0.1'``,``'9090'``)

启动mock服务端:

客户端代码:

import requests

1 2 3 4 5 6body``=``{ 'd1'``:``'hi'``, 'd2'``:``'falsk12312312' } resp``=``requests.post(``'http://127.0.0.1:9090/post'``,data``=``body) print``(resp.text)

结果如下:

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

二:mock接口测试实战案例

接口文档如下:

极简交易支付接口

接口路径: /trade/purchase

请求方式: POST

请求参数:

参数类型是否必填最大长度描述示例值
out_trade_noString64商户订单号,64个符以内、可包含字母、数字、下划线;需保证在商户端不重复20150320010101001
auth_codeString64支付授权码,2530开头的长度为1624位的数字,实际字符串长度以开发者获取的付款码长度为准28763443825664394
subjectString356订单标题Iphone6 16G
buyer_idString28买家的支付宝用id,如果为空,会从传入的码值信息中获取买家 ID2088202954065786
seller_idString28如果该值为空,则默认为商户签约账号对应的支付宝用户ID2088102146225135
total_amountPrice11订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] 如果同时传入【可打折金额】和【不可打折金 额】,该参数可以不用传入;如果同时传入了 【可打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】88.88

响应参数:

请求头:键:Content-Type 值:application/json

请求示例:

{

‘out_trade_no’:‘20150320010101001’,

‘auth_code’:‘28763443825664394’,

‘buyer_id’:‘2088202954065786’,

‘seller_id’:‘2088102146225135’,

‘subject’:‘Iphone6’,

‘total_amount’:‘88.88’,

}

成功返回示例:

{

‘code’:‘40004’,

‘msg’:‘Business Failed’,

‘sub_code’:‘ACQ.TRADE_HAS_SUCCESS’,

‘sub_msg’:‘交易已被支付’,

‘trade_no’:‘2013112011001004330000121536’,

‘out_trade_no’:‘6823789339978248’

}

失败返回示例:

{‘error’: {‘password’: ‘密码错误’}, ‘success’: ‘false’}

搭建mock服务端:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35import random import time from flask``import Flask,request,json #实例化一个web服务对象 app``=``Flask(__name__) #创建一个方法来处理请求 #定义一个路由--访问服务的根目录就可以得到结果 #构造一个接受post请求的响应 #处理极简交易接口 @app``.route(``'/trade/purchase'``,methods``=``[``'POST'``]) def purchase(): #拿到客户端返回的数据 res``=``json.loads(request.get_data()) out_trade_no``=``res[``'out_trade_no'``] auth_code``=``res[``'auth_code'``] data``=``{ 'code'``:``'40004'``, 'msg'``:``'Business Failed'``, 'sub_code'``:``'ACQ.TRADE_HAS_SUCCESS'``, 'sub_msg'``:``'交易已被支付'``, 'trade_no'``:``'2013112011001004330000121536'``, 'out_trade_no'``:``'6823789339978248' } #把out_trade_no改成客户端发送过来的数据 data[``'out_trade_no'``]``=``out_trade_no data[``'trade_no'``]``=``time.strftime(``'%Y%m%d%H%M%S'``)``+``str``(random.random()).replace(``'0.'``,'') #验证授权码 if auth_code !``=``'28763443825664394'``: return {``'coode'``:``'50000'``,``'msg'``:``'请求码验证失败'``} return data if __name__``=``= '__main__'``: #运行服务,并确定服务运行的IP和端口 app.run(``'127.0.0.1'``,``'9090'``)

客户端代码:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值