python接口自动化测试(二)-requests.get()

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括:

  1. requests常用请求方法使用,包括:get,post
  2. requests库中的Session、Cookie的使用
  3. 其它高级部分:认证、代理、证书验证、超时配置、错误异常处理等。

 

本节首先来了解一下requests库中如何发送get请求:

一、看下方法定义:

1、到官方文档去了下requests.get()方法的定义,如下:

 

2、点击右上角的【source】,看一下它的源码如下:

 

看到最后一行return,get方法最后是通过调用 requests.request 方法实现的,其实在其它的请求方法如post,put,head,delete等方法都是调用的request方法,然后把请求方法的类型传递给request方法第一个参数。

 

3、HTTP协议是一个基于请求/响应模式的、无状态的,应用层协议。既然有请求,就有响应,来看下resquest中常用的响应信息:

 

二、get方法简单使用: 

1、不带参数的get:

# -*- coding:utf-8 -*-
#不带参数的get

import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = ''.join([host,endpoint])
r = requests.get(url)
#response = r.json()

print type(r.text)
print (eval(r.text))

输出:

{
    'origin': '183.14.133.88',
    'headers': {
        'Connection': 'close',
        'Host': 'httpbin.org',
        'Accept-Encoding': 'gzip,
        deflate',
        'Accept': '*/*',
        'User-Agent': 'python-requests/2.18.1'
    },
    'args': {

    },
    'url': 'http: //httpbin.org/get'
}

 

2、 带参数的get:

# -*- coding:utf-8 -*-
#带参数的get

import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = ''.join([host,endpoint])
params = {"show_env":"1"}
r = requests.get(url=url,params=params)

print r.url

 输出: 

http://httpbin.org/get?show_env=1
{
    'origin': '183.14.133.88',
    'headers': {
        'X-Request-Id': 'ebe922b4-c463-4fe9-9faf-49748d682fd7',
        'Accept-Encoding': 'gzip,
        deflate',
        'X-Forwarded-Port': '80',
        'Total-Route-Time': '0',
        'Connection': 'close',
        'Connect-Time': '0',
        'Via': '1.1vegur',
        'X-Forwarded-For': '183.14.133.88',
        'Accept': '*/*',
        'User-Agent': 'python-requests/2.18.1',
        'X-Request-Start': '1504755961007',
        'Host': 'httpbin.org',
        'X-Forwarded-Proto': 'http'
    },
    'args': {
        'show_env': '1'
    },
    'url': 'http: //httpbin.org/get?show_env=1'
}

 

3、带header的get:

# -*- coding:utf-8 -*-

import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = ''.join([host,endpoint])
headers = {"User-Agent":"test request headers"}

r = requests.get(url)
r = requests.get(url,headers=headers)
#response = r.json()
print (eval(r.text))['headers']['User-Agent']

 输出:

test request headers

 

4、同时带参数和header:

# -*- coding:utf-8 -*-
import requests
import json

host = "http://httpbin.org/"
endpoint = "get"

url = ''.join([host,endpoint])
headers = {"User-Agent":"test request headers"}
params = {"show_env":"1"}

r = requests.get(url)
r = requests.get(url,headers=headers,params=params)

#response = r.json()
print (eval(r.text))['headers']['User-Agent']
print r.url

输出:

test request headers
http://httpbin.org/get?show_env=1

 

时间: 2024-09-20 00:56:36

python接口自动化测试(二)-requests.get()的相关文章

python接口自动化测试(三)-requests.post()

上一节介绍了  requests.get()  方法的基本使用,本节介绍  requests.post()  方法的使用:   本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2.带header的post 3.带json的post 4.带参数的post 5.普通文件上传 6.定制化文件上传 7.多文件上传   一.方法定义: 1.到官方文档去了下requests.post()方法的定义,如下:   2.源码:   3.常用返回信息:   二.post方法简单使用:  1

python接口自动化测试(六)-unittest-单个用例管理

前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测试框架 unittest,用它来处理批量用例管理,校验返回结果,初始化工作以及测试完成后的环境复原工作等等.   一.单个用例管理起来比较简单,参考如下图,单个用例一般多用在调试的时候:   二.代码如下: # -*- coding:utf-8 -*- # 单个用例执行 # 1.导入模块 impor

python接口自动化测试(一)-环境准备

接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当工具不太适合项目时需要自己进行开发.   在我们项目的初期,我们采用的是jmeter进行接口测试,当时觉得这个工具上手简单,团队成员学习成本低,并且接口测试的脚本稍微调整一下还可以用来做性能测试.针对这个工具本人也整理了一个系统的文章帮团队的同学入门使用:Jmeter教程索引贴.   不过随着项目规

python接口自动化测试(四)-Cookie&Sessinon

掌握了前面几节的的内容,就可以做一些简单的http协议接口的请求发送了,但是这些还不够.HTTP协议是一个无状态的应用层协议,也就是说前后两次请求是没有任何关系的,那如果我们测试的接口之前有相互依赖关系怎么办呢(比如我要在博客园发文章,是需要先登录的),这时我们就要用到cookie和session技术来保持客户端与服务器端连接的状态,这也就是本节要介绍的内容:   一.Cookie: 1.获取cookie: # -*- coding:utf-8 -*- #获取cookie import requ

python接口自动化测试(五)-其它(认证&代理&超时配置)

有了前面几节的介绍,基本的接口测试是可以满足了.本节一些其它的高级技巧:   一.认证 1.基本认证: # -*- coding:utf-8 -*- import requests url = "http://httpbin.org/basic-auth/user/passwd" r1 = requests.get(url) print "未提供用户名密码:" + str(r1.status_code) #Basic Authentication r2 = requ

python接口自动化测试(八)-unittest-生成测试报告

用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: 这个模块不能通过pip安装,只能下载安装,下载地址如下: python2.x版本:http://tungwaiyip.info/software/HTMLTestRunner.html python3.x版本:http://hzqldjb.blog.51cto.com/9587820/1590802

python接口自动化测试(七)-unittest-批量用例管理

我们日常项目中的接口测试案例肯定不止一个,当案例越来越多时我们如何管理这些批量案例?如何保证案例不重复?如果案例非常多(成百上千,甚至更多)时如何保证案例执行的效率?如何做(批量)测试数据的管理?如何做到数据与脚本分离? 以上这些问题才是我们自动化测试中要重点考虑的问题,单个用例其实并不难. 来看一下在unittest框架中如何管理批量案例:   一.手工加载批量用例: # -*- coding:utf-8 -*- # 批量用例执行--手工加载 import unittest class Tes

《移动App测试实战》——2.1 轻量接口自动化测试

2.1 轻量接口自动化测试 无论Web互联网的产品还是移动互联网的产品都必须依赖大量的后台接口提供的服务,有很多的业务逻辑都是放在后台来处理的,所以非常有必要对这部分逻辑来做测试验证.技术方案上,也可以模拟用户的UI操作,从界面上发起相关的请求.但是实际中,会发现这样的做法效率不高而且稳定性不够,开发和维护的代价也比较大.针对这部分的测试,最直接的方式还是从接口层面发起请求来验证. 就目前观察,对于一些比较稳定的基础性组件,比如底层平台.API.SDK等,或者功能通用性高的产品,比如防火墙.邮件

手把手教你接口自动化测试 – SoapUI & Groovy

原文:手把手教你接口自动化测试 – SoapUI & Groovy 手把手教你接口自动化测试 – SoapUI & Groovy   关键词:SoapUI接口测试,接口自动化测试,数据驱动测试,SoapUI进阶使用, Groovy in SoapUI, SoapUI中Groovy的使用,数据分离.   阅读这篇文章需要一定的SoapUI基础,至少入过门,另外还需要一些Groovy的知识,当然如果你会java 也可以,这里用到的Groovy知识和Java很类似. 另外,本文的思路和我上一篇文