1、为啥不用postman等工具去实现自动化测试,而需要自己写代码做自动化测试?
标准化工具
缺点:流程十分局限,且存在安全隐患,不能根据实际需求增加功能测试,不利于管理(分模块)。
自己写代码
优点:需手动执行观察接口结果,使用编程语言做自动化,可以实现自动执行+发送通知+定制化流程
缺点:学习成本高
2、应用场景:节约人力成本,提高生产力,回归测试;巡检:实时监控项目
3、类型
接口自动化测试(api自动化):面向接口、接口自动化优先于ui自动化
ui自动化测试:web自动化测试、app自动化测试、小程序自动化测试
4、原理:把python的各种第三方包组合使用
二、ruquests
1、http请求:
requests.get()、requests.post()、requests.put()、requests.delect()
ctrl+/ 全部注释
代码如下:
import requests
u ="http://192.168.0.34:9006/#/login"
res = requests.get(url=u) #调用requests第三包的get方法,指定url地址的方式请求
print(res.status_code) #打印http状态码,结果是200
print(res.json()) #打印返回值,结果是请求后的返回值
2、断言:对整个结果进行判断
语句 assert+条件,判断状态码(正确的状态码),判断返回值(使用message判断)、jsonpath取值 pip install jsonpath命令安装
3、接口自动化测试的步骤
(1)构造请求 (2)断言:状态码和返回值message (3)数据库校验:
查询、把返回值到数据库里面查询一遍,工作中一般忽略做查询接口校验
增加、新增信息等,校验参数是否正确插入到数据库中
修改、修改信息,验证修改参数是否修改到数据库中
删除、删除用户,逻辑删除,软删除,数据库中status字段由0改成1 ,不是delect物理删除
三、pymsql
1、python操作mysql数据库的,可理解为python版的navicat
安装 pip3 install pymysql
解包:快速把元组/数组/字典变成参数的形式
def add(s1,s2):
print(s1/s2)
#add(2,2)
a = (2,2)
# add(a[0],a[1])
#1.元组和list的解包
add(*a) #相当于把元组/列表的括号去除,不需要通过下标去取
2.字典的解包
def add1(s1=2,s2=2):
print(s1+s2)
add1()
add1(s1=2,s2=2) #指定参数传参,关键字参数传参
a ={"s1":100,"s2":200}
add1(**a)# **a相当于add1(s1=100,s2=200)