这是一个自动生成接口测试测试用例的项目, 您可以通过如下方式使用他
run in python3 当你git clone 该项目后,可以通过如下命令配置你的环境 如果你习惯使用venv环境, 那么你可以进行如下操作

 
>>> cd doraemon
>>> . venv/bin/activate
>>> pip3 install -r requirements.txt

 测试用例的编写

在根路径下找到cases路径
在cases路径下, 新增 .json 尾缀的文件
如果是单个文件单个case, 可参考如下示例: test_history_day.json

 
{
  "test_get_history_days": {
    "url": "http://api.juheapi.com/japi/toh",
    "params": "v=&month=&day=&key=1d39d53a70ebed87d5cabbc8b73b96e2",
    "method": "get",
    "desc": "测试历史上的今天接口, get请求",
    "assert": {
      "result": ["len", 0],
      "error_code": 10005
    }
  }
}


用字典包含字典的结构进行保存

在上面的示例中, {key: {...}},

文件名表示生成测试用例中的class的命名(以test开头,下划线分割多个单词)
key表示测试方法名, 如果需要case有序执行, 可以将示例中:

test_get_history_days 修改为test_1_get_history_days


key对应的字典, 是这条case中所有的需要用到的参数, 目前支持结构体如下

keyvalueSample
ResponseType验证返回结构体类型{"ResponseType": ["type", "dict"]}(支持字段类型验证)
url对应接口地址http://api.juheapi.com/japi/toh
method请求方法get
desc测试报告对应的用例描述信息测试历史上的今天接口, get请求
assert测试断言数据{"result": ["len", 0], "error_code": 10005}
paramsget方法需要传递的数据v=&month=&day=&key=1d39d53a70ebed87d5cabbc8b73b96e2
datapost提交表单数据{"pno":1,"ps":30,"dtype":"json","key":"4beb9d77d2b95ce9bec6d8363ee5a620"}
jsonpost提交json数据{"pno":1,"ps":30,"dtype":"json","key":"4beb9d77d2b95ce9bec6d8363ee5a620"}
schema需要断言返回数据的结构体验证TODO
headers请求头信息{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
cookies需要自定义cookies信息字典类型的key value 键值对

run.py

当你编写完成测试用例后, 可以通过以下命令运行测试

python3 run.py
>>> Testing ...

 
run.py是一个可以接受外部传参的文件, 当你需要自定义测试用例路径/ 测试报告生成路径 / 测试用例的Pattern时, 可以先通过 python3 run.py --help 来查看对应的入参后按需修改

 
?  doraemon [master] ? python3 run.py --help
Usage: run.py [OPTIONS]
 
Options:
  --cases TEXT    case file path
  --pattern TEXT  get cases file pattern
  --report TEXT   generator report in path
  --help          Show this message and exit.

默认参数配置如下

@click.option('--cases', default='src/testcases/', help="case file path")
@click.option('--pattern', default='*.py', help="get cases file pattern")
@click.option('--report', default='src/report/', help="generator report in path")

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐