接口测试-使用枚举类型
来源:互联网 发布:qq2012透明皮肤软件 编辑:程序博客网 时间:2024/05/20 17:28
好久没写了,刚开始有点忙,后来有点懒了,果然什么事还是要勤快点。之前看论坛的时候有一篇帖子(最后有链接)建议把接口response['code']和response['msg']定义成枚举类型,这样以后服务端发生变更时只要更改一个枚举类就可以了。刚开始写接口case的时候没当回事,就是assertEqual(response['code'],a),a表示要断言的一般都是整型数据。结果给自己挖坑了,服务端把返回code变更了,我就很蛋疼的把脚本对应case一个个去改,后来想起了这个事也是自己弄了一下,不管怎么样也算是跑通了,拿出来分享一下。
先上代码:
我的想法是把code,msg分别定义成两个字典类型变量,response_code之所以这种格式是因为如果将来发生变化,我只要把value改一下这样脚本就不需要修改了。同理response_msg也是一样不过,因为code是整型的的所以当做key,如果一个code=1对应多个msg就用列表,方便断言的时候assertIn。
首先继承Enum类,@unicode装饰器,保证不会有重复的变量。
定义完枚举类型后下一步就是取值的问题了
打印结果如下:
采用的是类名称调变量的形式,举个例行:
class weekday(enum):
week={
"1":week1,
"2":week2
}
day=1
weekday.week可以取到变量week本身,如果获取变量的值需要使用.value()这个方法比如说:weekday.day.value()打印的结果就是1.但是这里面有一个坑就是在一个.py文件可以采用类名.变量名称.value()这种方法获取,但是别的文件引用的时候再用这种方法就是调用不同,
一直没有提示没有这个方法,当时找了好几天的原因,也问了rd,一方面不是python写的也不是很清楚,另一方面很少用到枚举类型。当时我还在ResponseCode类里面写了一个get方法如下图:
但是仍然不好使,搞得我都蛋疼,后来终于知道需要把枚举类型的变量赋给里一个变量之后才能使用.value()方法获取值,如下:
self.responseCode=ResponseCodeMessage.response_code
因为基本上每一个testcase都会验证code值,所以放到base_testcase中的setup()方法,用于其他测试类继承base_testcase类大体上就这些,使用枚举类型的好处就是可以应对code值的变更,比如说之前code=0代表返回正常,现在修改成code=4000表示正常,如果都是写死在testcase中比如说这样写:
self.assertEqual(0,result['code']),这样的话,如果变更,每一条case都需要手动去修改,要你命啊,但是如果在枚举类型只要把值变一下就行了。
框架修改思路来源如下地址:
https://testerhome.com/topics/5878
}
- 接口测试-使用枚举类型
- 使用接口组织枚举
- 使用接口组织枚举
- get类型接口测试
- post类型接口测试
- 使用枚举类型
- 枚举类型-enum使用
- 枚举类型的使用
- 枚举类型的使用
- 枚举类型enum 使用
- iOS 枚举类型使用
- 枚举类型的使用
- enum枚举类型使用
- 枚举类型的使用
- 枚举类型的使用
- enum枚举类型使用
- 枚举类型的使用
- 枚举类型的使用
- 多线程
- c++ 内联函数 (讲解的真好)
- iOS NSString常用方法
- Citavi 6 从入门到精通中文教程 -您只需看会这些
- 从尾到头打印链表(链表)
- 接口测试-使用枚举类型
- 电梯系统高精度自诊断
- 自定义listview
- AJAX(22)
- iOS倒计时-swift2.3
- listview多条目加载
- marquee滚动标签
- struts2文件上传和下载
- 【转】解决 Atom 的包管理器——apm 访问速度慢的问题