标题
企业微信接口测试实战2
课程源码
课程价值
- 掌握接口测试框架
- 独立编写接口自动化测试项目
大纲
- 单接口场景讲解
- 接口业务场景描述
- 接口测试框架优化
- 断言优化
时长
180分钟
PPT
https://pdf.ceshiren.com/xly3/企业微信接口实战2
课程内容
单接口场景
- 传入一组合法的参数信息,以及一组不合法的参数信息
- 验证合法的是否成功, 不合法的是否失败
业务校验场景
创建部门-> 更新部门->删除部门->获取部门列表
ApiObject设计模式
- 封装(一些公共函数、操作等)
- 分层(逻辑业务和接口分开处理)
- 把实现和断言进行拆分
selenium分层
- basepage(和业务无关的,底层通用技术的封装)
- page(页面一些操作:元素定位、click、send_keys等单步封装)
- testcases(调用page的步骤,并进行断言)
requests(接口)分层,以企业微信为例
- conf: yaml文件,存放配置或者数据和业务相关的信息
- baseapi:和业务无关的,底层通用技术的封装,比如requests
- wework: 和业务线强相关,且此步骤通用性更强,比如token的封装
- department: 具体的业务接口的描述,接口的入参,接口的请求方式等等
- test_department:测试用例,包括具体接口的调用,以及具体的断言信息
断言
- 目前断言的问题: 数据量大的时候,且数据排序没有固定规律,很难获取到对应的值
jsonpath
特点:
- 类似于xpath定位方式,只是定位对象是一个json结构体
- 相比于普通的断言方式会更加的灵活
应用场景:
1.层级嵌套比较深的断言 - 嵌套比较复杂且结构多变的断言
- jsonpath的github
-
jsonpath 语法了解
-
jsonpath 使用示例
jsonpath常用示例
- 被查找的数据
{"errcode": 0, "errmsg": "ok", "department": [{"id": 1, "name": "WestWayyt", "parentid": 0, "order": 100000000}, {"id": 5, "name": "广州研发中心2", "parentid": 1, "order": 1, "name_en": "RDGZ23"}]}
- 找到所有key值为name:
$..name
- 找到key为department对应的value的第一个值:
$..department[0]
- 先过滤key为department的所有信息, 然后再过滤其中包含id字段值的信息,
$..department[?(@.id)]
- 先过滤key为department的所有信息, 然后再过滤其中id==5的信息,
$..department[?(@.id==5)]
- 先过滤key为department的所有信息, 然后再过滤其中id==5的信息, 并提取其中的name字段
$..department[?(@.id==5)].name