阿里巴巴网官方网站,做个微信小程序需要花多少钱,wordpress当前分类热门调用,域名更换网站今天正式开始为大家介绍接口自动化#xff0c;相信很多做测试的朋友#xff0c;都用过一些工具#xff0c;比如jmeter#xff0c;loadrunner#xff0c;postman等等#xff0c;所以今天先给那些基础不太好的同学#xff0c;先讲讲postman如何来测接口以及如何用pthon代码…  今天正式开始为大家介绍接口自动化相信很多做测试的朋友都用过一些工具比如jmeterloadrunnerpostman等等所以今天先给那些基础不太好的同学先讲讲postman如何来测接口以及如何用pthon代码的方式来发送http请求 
首先我们在做接口测试之前一般会拿到开发人员那边的接口文档没有接口文档是很难快速高效率的去进行测试工作的这部分接口测试所以得提前准备好或者拿到一份接口测试 接下来小编我以注册和登录为例附上截图给大家看看请提前下载安装好postman工具 
一、postman的基本使用 请求头信息截图如下 如果你不想一个一个的手动写可以有一种简单的方法 看自动生成了 这里有几个注意点要说明 
1.一定结合开发人员给你的接口文档结合起来进行 
2.请求头有的没有有的有看接口文档 
3.请求方式要看清是post还是get方式 
二、requests发送http请求 
这里有的问题会问做接口测试只能用工具吗可不可以写代码的方式来做接口测试当然可以python代码还是很强大的 
在写代码前先安装requests插件安装命令pip install requests 然后继续看下面的内容以登录接口为例 import requests # 登录的接口地址 url  http://api.lemonban.com/futureloan/member/login # 登录的参数 params  { mobile_phone: 15879563287, pwd: lemonban } # 请求头 headers  { X-Lemonban-Media-Type: lemonban.v2, } # 发送一个登录的请求 # 请求类型为Content-Type:application/json参数就应该使用json去传递 response  requests.post(urlurl, jsonparams, headersheaders) print(response) # 200,请求成功 # 获取接口返回的数据 print(response.text) 三、requests处理各种请求类型的参数 
常见的接口请求参数类型 
1、查询字符串参数     常用于get请求其他的请求方法用的少参数会直接拼接在url地址后面     requests发送请求传递查询字符串参数要使用params去传递  paramsparams 
2、json类型的参数     请求参数类型为 Content-Typeapplication/json,     requests发送请求传递json参数就应该使用json去传递     jsonparams 
3、表单类型的参数     请求参数类型content-type: application/x-www-form-urlencoded     requests发送请求传递表单参数就应该使用data去传递  dataparams 
4、文件上传     请求参数类型content-type: multipart/form-data     文件参数要使用files进行传递     文件参数的组装     {参数名: (文件名, open以rb模式打开文件, 文件类型)}     [(参数名, (文件名, open以rb模式打开文件, 文件类型))] import requests # --------------------查询字符串参数传递----------------------------- # 查询字符串参数的传递 url  http://api.lemonban.com/futureloan/loans # 请求参数 params  { pageIndex: 1, pageSize: 20 } # 请求头 headers  { X-Lemonban-Media-Type: lemonban.v2 } response1  requests.get(urlurl, paramsparams, headersheaders) print(response1.text) # ----------------------json格式的参数传递------------------------------ # 注册的接口地址 url  http://api.lemonban.com/futureloan/member/register # 参数 params  { mobile_phone: 15879562223, pwd: lemonban } # 请求头 headers  { X-Lemonban-Media-Type: lemonban.v2 } response2  requests.post(urlurl, jsonparams, headersheaders) print(response2.text) # ------------------------表单类型参数的传递---------------------------------- # 接口地址 url  https://www.ketangpai.com/UserApi/login # 参数 params  { email: 24782578257, password: 1426, remember: 0 } response3  requests.post(urlurl, dataparams) print(response3.json()) # -----------------------文件上传--------------------------------- # 上传文件的接口地址这是授课老师本地的我们无法访问 url  http://127.0.0.1:5000/upload # 请求的参数 params  { nickname: 1122, age: 18, sex: 男 } file  { pic: (jiayouya.gif, open(jiayouya.gif, rb), image/gif) } # response4  requests.post(urlurl, dataparams, filesfile) print(response4.json()) 四、请求响应数据的提取方式 
响应对象response 
一、http响应码response.status_code 
二、返回的数据提取 1、text属性str:获取的是原生的json字符串 用的不多 2、content属性(bytes)可以使用decode指定编码转换为字符串 用的不多 3、json()方法(dict)获取到的是json转换的字典/列表 工作中常用需重点掌握 
三、json类型的数据和 python中数据的对比       json     python     {}:    对象                字典     []:    数组                列表     空    null                 None     布尔 false              False        true                True  import requests # 登录的接口地址 url  http://api.lemonban.com/futureloan/member/login # 登录的参数 params  { mobile_phone: 15879563287, pwd: lemonban11 } # 请求头 headers  { X-Lemonban-Media-Type: lemonban.v2, } # 发送一个登录的请求 # 请求类型为Content-Type:application/json参数就应该使用json去传递 response  requests.post(urlurl, jsonparams, headersheaders) # 获取接口返回的数据 print(response.text) print(response.json())  五、jsonpath和json数据 
json提取数据 
首先安装jsonpath   安装命令pip install jsonpath 
然后这里我给出一组数据如下这是登录之后返回的数据 {code: 0, msg: OK, data:{ id: 2096225, leave_amount: 0.0, mobile_phone: 15879563287, reg_name: 小柠檬, reg_time: 2020-08-21 11:36:56.0, type: 1, token_info: { token_type: Bearer, expires_in: 2020-08-21 18:11:31, token: eyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjIwOTYyMjUsImV4cCI6MTU5ODAwNDY5MX0.dvhKZs67w2jWX9zjqzsQ_7xjE3ggcfuEjtl6HOkmSb0qWkqp8pOiMYzJ6LDSKfGj_6D-1SnxDqd4Ew2fY8oziw } } copyright: Copyright 柠檬班 © 2017-2020 湖南省零檬信息技术有限公司 All Rights Reserved } 
from jsonpath import jsonpath import requests # 登录的接口地址 url  http://api.lemonban.com/futureloan/member/login # 登录的参数 params  { mobile_phone: 15879563287, pwd: lemonban } # 请求头 headers  { X-Lemonban-Media-Type: lemonban.v2, } # 发送一个登录的请求 # 请求类型为Content-Type:application/json参数就应该使用json去传递 response  requests.post(urlurl, jsonparams, headersheaders) # 获取接口返回的数据 res  response.json() # 通过字典键值对的方式获取 # token  res[data][token_info][token] # print(token) # 通过jsonpath提取 token  jsonpath(res, $..token) print(token)   再给大家详细来张图  因为jsonpath提取数据的语法基本如下  如果Json数据中还存在列表想获取列表类型的数据信息怎么获取 
比如我给出一个json类型数据看截图  import json from jsonpath import jsonpath # 读取json文件中的数据转换为python中的字典 with open(data.json, r, encodingutf-8) as f: res  json.load(f) res  jsonpath(res, $.toplists[1].id) print(res)  因此总结这部分json获取数据的内容有以下这么几点 
1.可直接通过美元符号$        举例 $..code 
2.若需要找列表中的信息   举例  $.toplists[1]