Python 接口自动化脚本调试问题汇总

2018-12-23  本文已影响88人  倔强的潇洒小姐
1、TypeError: type object argument after * must be an iterable, not int

原因:因为UNITTEST不支持测试装饰器,只有使用@parameterized.expand创建的测试才会被执行
(装饰器):给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器

解决办法:将参数值加引号

@parameterized.expand([
    '1',
    '0'
])
2、TypeError: 'str' object is not callable

关于这个问题,网上看了很多资料,都没找到解决办法,同样的写法运行同事的代码就是成功的,今天早上抽时间用文本比对工具看下差异,发现表单中的一个字段赋值时没有指定default

memo = StringField('memo', [validators.length(max=512)], '释放空间看的客观看待理工科')

正常写法:

memo = StringField('memo', [validators.length(max=512)],  default='释放空间看的客观看待理工科')
3、Python3.5 does not support a 'F'prefix

调试支付宝商户修改接口时,因我的python版本是3.5,有一个字符串格式化的语法不支持,查了下官方文档发现3.6版本做了一个优化,采用 f' 代替了 str.format()
解决办法:本地安装版本做升级处理

image.png

总结

1、在设计Form时可以将参数的默认值设在表单里面,写case时只需传需要改变的参数值就可以了,减少case代码量

上一篇下一篇

猜你喜欢

热点阅读