zoukankan      html  css  js  c++  java
  • Pyhton-Requests之接口测试

    非常感谢[百人计划]五娃的分享!下面是整理的笔记:

    一、环境准备:

    Pyhton 2.x或者Pyhton 3.x、Requests库。(我安装的版本是Pyhton 3.4)

    安装

    Pyhton 3.x安装参考文档http://www.cnblogs.com/lansan0701/p/6349442.html

    Requests安装命令 pip install requests

    使用上述命令的前提是已经安装了pip(pip安装也参考文档http://www.cnblogs.com/lansan0701/p/6349442.html

    二、Requests做接口测试,首先明白以下问题:

    1、如何发送请求?

      1)如何知道请求的URL?

      2)如何辨别请求的方式?

    解决如上两点方法:1技术提供接口文档(最佳方案);2自己抓包。

    2、如何组装数据?

      get方法和data方法参数组装区别(见下文示例2、3)。

    3、如何处理响应内容?

      1)设置断言assert;

      2)自己写判断语句(唯一识别判断)。

    三、下面是三种代码形式

    1、发送请求(get请求)

    #!/usr/bin/env python
    #示例1
    import
    requests url_one="http://www.baidu.com/s?wd=python" #请求的url response_message=requests.get(url_one) print(response_message.status_code) #打印相应结果状态码 print(response_message.text) #打印响应内容 print(response_message.url) #打印请求URL if u'python' in response_message.text: print('success') assert(response_message.status_code,201)

    2、参数组装

    get请求

    #!/usr/bin/env python
    #示例2
    import requests
    url_two="http://www.baidu.com/s"
    payload={'wd':'python'}
    response_message=requests.get(url=url_two,params=payload)
    print(response_message.status_code)
    print(response_message.text)
    print(response_message.url)
    
    if 'python' in response_message.text:
        print('success')
    if 200==response_message.status_code:
        print('send success')
    assert(response_message.status_code,201)

    post请求

    #!/usr/bin/env python
    #示例3

    import requests url_three="http://www.baidu.com/s" data={'wd':'python'} response_message=requests.post(url=url_three,data=data) print(response_message.text)

    3、unittest框架

    将上述代码采用unittest框架会更简洁,如下:

    #!/usr/bin/env python
    #示例4
    import requests
    import unittest
    
    class ThisTest(unittest.TestCase):
    
        def test_get_method_no_params(self):
            url_one="http://www.baidu.com/s?wd=python"
            response_message=requests.get(url=url_one)
            self.assertIn('python',response_message.text)
            self.assertEqual(200,response_message.status_code)
            
        def test_get_method_with_params(self):
            url_two="http://www.baidu.com/s"
            payload={'wd':'python'}
            response_message=requests.get(url=url_two,params=payload)
            self.assertIn('python',response_message.text)
            self.assertEqual(200,response_message.status_code)
            self.assertEqual(url_two+'?wd'+'='+payload['wd'],response_message.url)
    
    if __name__=='__main__':
        unittest.main()

     四、总结

    接口测试入门需要熟悉一下几点:

    1. Requests库基础;
    2. 接口协议类型;
    3. 参数组装;
    4. 请求的Url;
    5. 相应结果的处理;

    五、补充

    接口测试用例是依据功能测试抽离出来的,不包含业务的测试。

  • 相关阅读:
    Oracle数据库面试题【转载】
    年龄计算周岁
    丈夫的权力与妻子的职业水平
    JDK 8 and JRE 8 Supported Locales
    一笔画 奇点 偶点
    流水行船问题
    PL/SQL LOOP SAMPLE
    OpenCV——识别各省份地图轮廓
    OpenCV——轮廓面积及长度计算
    树莓派3安装opencv2程序无法运行
  • 原文地址:https://www.cnblogs.com/lansan0701/p/6602940.html
Copyright © 2011-2022 走看看