zoukankan      html  css  js  c++  java
  • python+requests实现接口测试

    在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息,

    会造成识别失败。 如一些需要用户登录以后才能访问的页面。

    import requests
    myaddress_url='http://xxx.com/api/v1/myaddress'
    myaddress=requests.get(myaddress_url)
    print(myaddress.status_code)
    print(myaddress.text)
    
    -----结果-----
    401
    未授权的访问, 请重新登陆
    

    在用户登录的时候,服务器端会向请求方发送一些资料,存在本地,例如cookies,在接下来的某些请求中,都需要带上cookies,服务器通过cookies内容来辨别

    使用者。

    那么在python中,是如何在请求中带入cookies信息的呢,看下面:

    import requests
    login_url='http://xxx.com/api/v1/user/login'
    userinfo={"ua":"username","pw":"password"}
    login=requests.post(login_url,json=userinfo)
    cookies=login.cookies                                #获取登录后的cookies内容
    
    myaddress_url='http://xxxx/api/v1/myaddress'
    myaddress=requests.get(myaddress_url,cookies=cookies)    #在请求中带入cookies
    print(myaddress.status_code)
    print(myaddress.text)
    
    -----结果-----
    200
    {........}

    带入了cookies内容后,可以正常的获取到想要的响应内容。

    在此处虽然可以请求成功,但需要获取到cookies内容及每次都要发送cookies内容,不是非常方便,因此,接下来我们介绍另外一种方法

    使用session类来发送请求:

    import requests
    
    login_url='http://xxxx/api/v1/user/login'
    userinfo={"ua":"username","pw":"password"}
    myaddress_url='http://xxx/api/v1/myaddress'
    test_session=requests.session()                           #使用session类生成一个对象
    login=test_session.post(login_url,json=userinfo)   
    myaddress=test_session.get(myaddress_url)
    print(myaddress.status_code)
    print(myaddress.text)
    
    -----结果-----
    200
    {...}
    

    至此,cookies相关的问题解决

  • 相关阅读:
    欢乐送小程序自动化探索实践
    看完这篇还不了解 Nginx,那我就哭了!
    测试人的技术栈
    Bug,项目过程中的重要数据
    什么是测试开发工程师?
    hdu 1219 AC Me
    hdu 1202 The calculation of GPA(算绩点问题)
    hdu1205吃糖果(插空法)
    hdu1201(18岁生日)
    hdu1231最大连续子序列
  • 原文地址:https://www.cnblogs.com/nizhihong/p/6699492.html
Copyright © 2011-2022 走看看