前言：
组合测试场景的格式是：casefile=[ {key:[json文件1，json文件2。。。]} ,{key:[json文件1，json文件2。。。]}  ]，key表示testCase目录下对应的文件名，json文件1表示key目录下的json文件
其设计思想：一个项目下可能会执行多组场景，每组场景下可能会执行多个相同的接口

tools目录
├── asertcase.py
                 处理json文件中的result数据，除了code:0,也支持其他条件

├── cookie.txt
                 合同项目的保持登陆不是token，而是cookie。当合同登陆成功后，将cookie保持到该文件，之后的请求都是通过该cookie保持（功能类似token）

├── dealCasefile.py
                 处理测试场景，即casefile，将json文件补充成绝对路径的格式

├── dealDatabase.py
                 delDatabase函数执行json文件中的db和sql，dealParamSql函数主要处理json文件的sql，
                 例如如何sql中存在%s，则需要将其替换成可用值（本次是针对phone_no，username等）

├── dealScene.py
                 处理测试场景，即casefile，当json文件存在status！=["notfinfish","skip","noexec"] and 后缀文件名=json时，
                 则认为该json文件是一个可用的，否则需要将该json文件移除

├── dealbody.py
                处理json文件中的body和header数据，当body中均存在%s，则需要从dealDatabase函数得到的数据进行填充，当body和header有token时，需要从KeyData中取数据进行替换

├── deals.py
                文件重命名，用来重命名测试报告

├── debugtalk.py
                处理json文件中的rule规则，参考httprunner

├── dingdingtalk.py
                和flask连用，每执行完测试场景，都会往钉钉群里发消息

├── rwKeyData.py
                读写keyData文件

└── zentaopms_cases.py
                将禅道上的编号文件存储在本地


blueprints目录
├── cookie.txt
├── exec.py
            生成测试报告
            第二个参数：表示测试环境（namespace）；
            第三个参数：表示使用者（如果是jenkins，则phonse_no为随机）；
            第四个参数：表示手机号（如果第三个参数不是jenkins，这个参数才有用），
            第五个参数：表示testsuit（从keydata文件中得到，如果没找到，默认test_number1）

├── execcase.py
            处理组case（tt = [{'hetong': ['284.json']}, {'passportapi': ['334.json']}]这种格式的），
            execcase.wcases函数将数据写入到testcases.py文件中，execcase.getcases
            函数根据组case生成符合规则的testsuits，然后testsuits执行testcases.py文件

├── requestResult.py
            主要是将处理好的header，url，body进行执行操作

├── selects.py
            用在flask

├── settings.py
            存储数据库和namespace相关，一些静态文件路径及其他文件路径

├── testcases
            无用文件
            
├── testcases.py
            和execcase.wcases函数有关



json中不同字段的作用：

1、nextstep：只支持term，product，account。当出现该值时，则counter+1，实际值和