接续这个文集中的文章:https://www.jianshu.com/nb/23293583
找不到免费的接口,所以依然以requests官方文档中出现的httpbin为示例,为了保持网络的稳定,可以把httpbin搭建在本地。
httpbin环境搭建
VMware12
ubuntu kylin 16.04_x64
python3.5
安装虚拟环境,pipenv:
在安装pip后,创建虚拟环境,安装httpbin和gunicorn:
启动httpbin,如果启动后,宿主机无法访问,查看防火墙设置,把端口加入iptables:
测试httpbin接口
前面了解requests的过程中,多次用到httpbin接口做示例。对这个接口应该比较熟悉了。先实现简单的接口测试。
classTestHttpMethods:
@classmethod
defsetup_class(cls):
cls.url ='http://192.168.86.131:8088/'
cls.data = {'haha':'nihao'}
deftest_get(self):
url = urljoin(self.url,'get')
r = requests.get(url,params=self.data).json()
print(r)
# assert r['url'] == url
assertr['args'] ==self.data
deftest_post(self):
url = urljoin(self.url,'post')
r = requests.post(url,data=self.data).json()
assertr['url'] == url
assertr['form'] ==self.data
deftest_patch(self):
url = urljoin(self.url,'patch')
r = requests.patch(url,data=self.data).json()
assertr['url'] == url
assertr['form'] ==self.data
deftest_put(self):
url = urljoin(self.url,'put')
r = requests.put(url,data=self.data).json()
assertr['url'] == url
assertr['form'] ==self.data
deftest_delete(self):
url = urljoin(self.url,'delete')
r = requests.delete(url,data=self.data).json()
assertr['url'] == url
assertr['form'] ==self.data
classTestAuth:
@classmethod
defsetup_class(cls):
cls.url ='http://192.168.86.131:8088/'
# cls.data = {'haha': 'nihao'}
deftest_basicauth_y(self):
data ='aa','123'
url = urljoin(self.url,'/'.join(('basic-auth',) + data))
print(data)
r = requests.get(url,auth=(data)).json()
print(r)
assertr['user'] == data[]
deftest_basicauth_n(self):
data = ('aa','123')
url = urljoin(self.url,'/'.join(('basic-auth',) + data))
r = requests.get(url,auth=('aa','bb'))
assertr.status_code ==401
deftest_bearer_y(self):
headers = {'Authorization':'justtestauth'}
url = urljoin(self.url,'bearer')
r = requests.get(url,headers=headers)
assertr.status_code ==200
r = r.json()
assertr['token'] == headers['Authorization']
deftest_bearer_n(self):
headers = {}
url = urljoin(self.url,'bearer')
r = requests.get(url,headers=headers)
assertr.status_code ==401
运行pytest命令
运行pytest命令直接查看结果:
运行pytest命令生成测试报告:
总结
在一个py文件中编写了一堆用例,并且能够输出报告了,终于踏出了第一步
缺点说明:
1、没有进行数据隔离:接口、请求参数、断言数据都在同一文件中;
2、不能设置配置信息:如测试地址改变等,不能直接通过配置文件修改;
3、没有记录日志信息:没有记录接口的执行信息,如果出现bug,无法提供定位信息;
作者:乐大爷L
链接:https://www.jianshu.com/p/d75f24e5de29
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
领取专属 10元无门槛券
私享最新 技术干货