Mock Server充当的角色:
Mock server在实际项目中的意义就相当于数据库。将我想要的数据返回给我就行,我并不关心你怎么逻辑处理的。
一般的应用程序请求方式是GET和POST。
Flask自带的request使用:request.url获取当前的请求url全路径地址,request.method获取当前的请求方式。
Flask处理get请求时:
(1)因为get方式存在带”?”的参数方式,所以可以使用urlparse模块进行解析。
Urlparse是将url拆分成6部分,并返回元组。具体实例可以参见:http://my.oschina.net/guol/blog/95699
将带”?”的方式分别将key-value对应关系取出来,这样就可以知道每一个请求的key-value。
(2)不同的公司定义的接口标准不同,不同的get方式key-value对应关系要自己去梳理和找出相同及不同点,方便后期自己不管是做接口还是客户端测试验证时可以:
根据url就可以取出对应的key-value,进行自动化校验。
Flask处理POST请求时:
post方式的数据一般是放在body中的,有时header中会携带一些用户信息:
使用request.get_data() 可以获取到请求中的body内容,使用request.headers获取到header中的用户信息,然后可以根据规律同样将key-value对应关系取出,进行相应的测试等。
Flask正则表达式:
Flask正则表达式要想使用需要导入BaseConverter:
From werkzeug.routing import BaseConverter
定义一个类:
Class RegexConverter(BaseConverter):
Def __init__(self,url_map,*items):
Super(RegexConverter,self).__init__(url_map)
Self.regex=items[0]
然后app.url_map.converters[‘regex’]=RegexConverter
通过定义:
@app.route(‘/
Def allurl(ceshi):
myreqUrl=request.url
Print myreqUrl
Return ‘
这样就可以匹配所有的url并返回相同的结果。
Regex正则表达式相关学习:
http://www.cnblogs.com/youquan-deng/articles/csharp-regex.html
匹配任意字符:[\w\W]*
匹配任意包含jingxuan的正则 \\w*jingxuan\\w*
匹配最后以json结尾的正则 .json$
匹配任意符合数字的正则 -?\d+
匹配任意符合字母的正则 -?[a-zA-Z]+
只匹配一个数字 \\d或者[0-9]
匹配版本号 (-?\d+)(\.\d+)?(\.\d+)?(\.\d+)?(\.\d+)?
匹配类型json结尾或者html结尾 .json$|.html$
匹配url ^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
Flask Mock Server可以做的:
使用flask的正则表达式可以根据请求的url及抓到的请求参数:
1.自动验证参数数量及合法性(所谓的接口自动化做的事情)。
2.自动返回固定的数据,或者根据需要进行相应的修改。
3.尽可能的模拟接口在真实环境下的状态,进行最大程度的模拟“客户端状态”。
目前所做的事情已经基本可以实现了部分客户端及接口校验,当然还有很多不足。