第三十天&request接口测试

request的简单介绍和两种基本类型

requests接口测试
前提配置环境 pip install requests
两种方式,get,post
get无参数请求
r  = requests.get('http://www.baidu.com')
get有参数请求
payload = {'key1': 'value1', 'key2': 'value2', 'key3': None}
r = requests.get('http://www.baidu.com ', params=payload)
post
 payload = {'key1': 'value1', 'key2': 'value2'}
 r = requests.post("http://httpbin.org/post", data=payload)

响应及Request扩充

r.status_code        响应状态码
r.heards             响应头
r.cookies            响应cookies
r.text               响应文本
r.json()             响应的字典类型数据
r. encoding          当前编码
r. content            以字节形式(二进制)返回
1:添加等待时间
requests.get(url,timeout=1)          #超过等待时间则报错
2:添加请求头信息
requests.get(url,headers=headers)    #设置请求头
3:添加文件
requests.post(url, files=files)      #添加文件

requests+ unittest + HtmlTestRunner

主要流程:读取文件中的数据
requests拿到数据请求接口返回状态码
通过断言验证返回的数据和预期结果
生成allure的测试报告
模块总览:dataDemo(存放数据)>> readDemo(读取数据)>> restDemo(发送请求生成报告)
需要导入的模块有,读取数据的模块,request模块
对字符串的转换用eval()函数
判断get还是post类型用if语句
eg:用变量a来介接收接口返回值
a=equest.get(url,params)
在测试用例中执行requests请求,验证预期结果和实际结果:
self.assertEqual(b.json()["error_code"],int(list_i[3]))
b.json()["error_code"]为字典里取值,
int(list_i[3]为返回列表里索引取值
最后在另一个包里创建生成测试报告的方法
如接口为post形式则吧params换为data,.get改为.post

 

requests+pytest+allure

流程同unittest,将单元测试中的unittest方法换成pytest

如何做接口自动化测试

首先我是用python+requests+unittest+htmltestrunner/pytest+allure实现了接口自动化测试
首先在数据包中存储接口的测试数据比如csv文件,excel文件等,实现数据和代码逻辑的分离
然后在读取数据的包中实现读取文件的获取数据的操作
接着在测试用例包中导入读取数据模块,通过requests的get/post方法获取该接口的返回数据的信息在单元测试模块(unittest/pytest)中通过断言验证返回的值和预期结果是否一致
最终结果打印在html类型的测试报告中

如何实现接口之间的关联

首先导入requests和unittest,模块
创建一个类,新增一个测试用例(放在方法里),在第一个接口中用字典取出第二个接口中所用的参数,放在方法外部设置为全局变量,在第一个中运用global修改全局变量参数,在第二个接口中引用实现接口关联
手机号码归属地和天气预报关联eg:
import requests,unittest
class Tii(unittest.TestCase):
    city=""
    def test001(self):
        a="http://apis.juhe.cn/mobile/get"
        b={"phone":"18256179322","key":"cb82dc216cbd59b235b7742aff1238ed"}
        c=requests.get(url=a,params=b)
        global city
        city=c.json()["result"]["city"]
    def test002(self):
         a="http://apis.juhe.cn/simpleWeather/query"
         b={"city":city,"key":"31a901ee32cffe1106ecc1fae6227a41"}
         c=requests.get(url=a,params=b)
         print(c.json())
if __name__ == '__main__':
    unittest.main()

 

pytest数据驱动

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值