软件测试-接口自动化测试-HTTP

学习笔记记录

1、安装需要的库

PyCharm的Terminal内部输入

pip install -U requests

2、进行简单接口测试

#导包
import requests
# 用post是因为请求方法为post  data/json:传递的参数,用哪一个看对应的参数格式
result=requests.post('http://testingedu.com.cn:8081/inter/HTTP/login',
              data={'username':'will','password':'123456'})
# 把得到的结果打印出来,但结果可靠吗?
print(result.text)

这里是看B站上的视频找的网站网址,主要是现在许多网站使用的都是https。

在我自己电脑上运行后,系统报错:

TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

原因:服务器可能宕机,或者端口没有提供服务

我检查了端口没有问题,手动打开网页也开不了,所以网站提供的服务器网址宕机了,不能使用。

所以这部分只能观看学习,不能实操。

还有一些常见报错:

404:URL地址路径错误

500:服务器内部异常,这时,可以向开发人员提BUG。验证是否要提BUG,返回<doctype>开头的html代码,复制出来,放到html文件里打开,就可以看到Exception。

网站视频运行是成功的,它返回的结果截图:

这时,我们返回结果的状态码验证一下。

print(result.status_code)

返回的是200,这是成功的状态码,但是我们明确知道我们测试的是非法请求,是不能通过的。

这就叫做业务验证失败。

解决方法1:可以去问开发,校验的是什么字段。

解决方法2:到头里一个个找。一个个试。

知道校验的是什么字段后,在头里把字段带上,比方说要校验的字段是token

代码编写:(同时要做result中把header带上)

header={'token':'576ab8ssdfjej3outtwejsskck'}
# 用post是因为请求方法为post  data/json:传递的参数,用哪一个看对应的参数格式
result=requests.post('http://testingedu.com.cn:8081/inter/HTTP/login',
              data={'username':'will','password':'123456'},
                     headers=header)

再次运行截图

这个时候,就回到了用户层面。

这个简单的接口测试,得到的结果不能确保可靠,所以,我们要发送成功一次有效等价类的请求,也就是带着可以成功登录的参数去请求。

运行结果截图:

所以,我们原先的测试结果是可靠的。(即错误的密码不能登录成功,只要正确的密码才可以。)

3、接口自动化测试

当我们登录成功一次,后再次跑代码,就会返回:用户已在别处登录,这样接口就不能实现自动化测试。测试结果又不可靠了。

所以接口自动化测试,每一个用例必须保证有完整的前置和后置操作。

前置操作:保证用例执行的基本环境(别人不影响我)

后置操作:保证用例不产生影响其他用例的因素(我不影响别人)

比如前面的header操作,就是前置,但是每一次跑代码不可能都去前端网页去复制token,所以,去网址的auth里自动获取。(auth是通过抓包找出来的)

代码编写:(原先的header注释)

#前置操作
result=requests.post('http://testingedu.com.cn:8081/inter/HTTP/auth')
print(result.text)
header={'token':result.json().get('token')}
# 后置操作 注销
result=requests.post('http://testingedu.com.cn:8081/inter/HTTP/logout',
                     headers=header)
print(result.text)

logout也是通过抓包找到的。

此时,这个接口脚本就可以实现无限次运行,不受干扰,这就是一例接口自动化测试脚本。

接下来我们可以通过改变参数(username,password)来进行登录接口测试。

我们还可以添加一个断言assert,直接观察是否报错来判断结果。

代码编写:

assert result.json().get('msg')=='恭喜您,登录成功'

当然,这只是一个非常渐层粗糙的接口测试。后期优化还需要优化。

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值