本篇文章分享几个接口自动化用例编写过程遇到的问题总结,希望能对初次探索接口自动化测试的小伙伴们解决问题上提供一小部分思路。

sql语句内容出现错误

空格:由于有些字段判断是变量,需要将sql拼接起来,但是在拼接字符串时没有加空格导致报错。

错误状态:打印出来就好排查啦,一看and和时间连起来了,果然是这里出错:

修改后,能够读到数据库中内容了:

sql语句格式错误

检索类型,有些需要加引号,因为sql语句包含XXXX类型,对于如上面例子中的日期类型是datetime.date,直接用qiandao = t_date 不可行。

断言返回数据的类型

判断业务状态码时需注意返回的code值类型,开发可能写int或string类型不统一,php语言int / string 区分不是很严格,而python对其有区分,所以需要结合服务端代码进行编写,如:

 

业务逻辑覆盖判断

某个接口逻辑,肯定在不同条件下会判断并返回不同的值,就像游戏升级一样一级一级进行判断。

在构造时我们必须首先构造其中的测试环境的条件,或者知道判断条件后,对测试环境及结果进行判断断言。

以下例子包含以上两种检查方式,这里不方便公开,对环境的构造统一先用中文注释,调用函数对应相应环境即可。

对于结果已知的注册时间天数判断在断言中进行判断。如:

需要封装api

如几天前的时间按照自然日判断还是按照时间间隔判断,换算小数保留方式封装,数据库&redis的增删改查封装等(根据实际需要),这种对于不是特别熟悉python自带哪些库的同学来说很实用。

这里最重要的一点是能够了解自己的需求,并想方法进行拆分用更细致的步骤实现。

如,当然还有对hash类型的操作等,还有重要的一点就是一定要写清注释,方便调用和其他人调用: