pip install jsoncontrast
Used to contrast two json,especially for testers.
jsoncontrast.check(src_data, dst_data,model='contains',string_model='strict',num_model='equal',num_limit=None,explicit=True,basedir=None)
主要用来对比json串的期望值和返回值,用于接口测试,方法包括以下8个入参:
- 2个必选参数:
- src_data-----用来做对比的一个json串,一般地,例如:接口实际返回的json
- dst_data-----用来做对比的另一个json串,一般地,例如:校验接口的期望返回json
- 6个可选参数:
- model='contains'-----可选范围['contains','strict']
- contains: src_data单向包含dst_data
- strict: src_data与dst_data相互包含(不计顺序内容一致)
- string_model='strict'-----可选范围['contains','strict','start','end','exist']
- contains: dst_data中的字符串项包含于src_data中对应的字符串
- strict: dst_data中的字符串等于src_data中对应的字符串
- start: src_data中的字符串以dst_data中对应的字符串开头
- end: src_data中的字符串以dst_data中对应的字符串结尾
- exist: 只想判断dst_data中某项存在,不需要比较具体值,对应值的位置写成''
- re_expr:dst_data中的字符串以正则表示(见示例)
- num_model='equal'-----可选范围['equal','nequal','big','small']
- equal: dst_data中的数字项等于src_data中对应的数字项
- nequal: dst_data中的数字项不等于src_data中对应的数字项
- big: dst_data中的数字项大于src_data中对应的数字项
- small: dst_data中的数字项小于src_data中对应的数字项
- num_limit=None-----可选范围:无或任意整数或浮点数
- 仅在num_model等于big或small时起效,用于额外的设定dst_data中的数字项的上限或下限
- explicit=True-----可选范围:True或False
- 用于设定是否需要生成json对比文件
- basedir=None-----可选:用于设定结果存放目录,默认存放于项目文件夹
- 仅在explicit=True时起效
- model='contains'-----可选范围['contains','strict']
举例:
-
eg1.
src={"k1" :{"k11":[{"listk111": "北京"},{"listk112": "上海"}],"k12":{"listk121": 7}},"k2":{"listk21": "广州"} }
dst={"k1":{"k12":{"listk121": 5}}}
jsoncontrast.check(src,dst,num_model='small',num_limit=4) -
eg2.
src=[{"see":["java","python","golang"],"say":"life is short,i use python"}]
dst=[{"see":["java","golang","python"],"say":"re.findall('(python)$','{{src}}')"}]
jsoncontrast.check(src, dst,string_model='re_expr') -
eg3.
src={"k1" :{"k11":[{"listk111": "北京"},{"listk112": "上海"}],"k12":{"listk121": 7}},"k2":{"listk21": "广州"} }
dst={"k1":{"k12":{"listk121": 7},"k11":[{"listk111": "re.search('北.*','{{src}}')"},{"listk112": "上海"}]}}
jsoncontrast.check(src, dst,string_model='re_expr')
It offers a method jsontcontrast.check,you can use it according to what above descripted in Chinese,or just guess and try,it is so easy!
Release files for jsoncontrast 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jsoncontrast-1.0.0.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jsoncontrast-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.8 kB
Release files / jsoncontrast-1.0.0.tar.gz
| Download URL | jsoncontrast-1.0.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0d0f88e855520e969c559b769b18210a6c4dcdce333e45956a0d78e46aa8cbc
|
|
BLAKE2b-256 checksum How to use checksums |
dbfd786859ffef881a0b0eb78d9935b75a5df6237513a984961458abf96ac9c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0
|
Release files / jsoncontrast-1.0.0-py3-none-any.whl
| Download URL | jsoncontrast-1.0.0-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b737fee5ee09030a7394a4a4911cbae62b987b5b363d890435cab527cc84b624
|
|
BLAKE2b-256 checksum How to use checksums |
476b5c678fb0c9f435f8b8f526f11d86f309f789d0f1b1aaada26cc3e08052ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0
|