pycharm中使用request和Pytest进行接口测试的方法


Posted in Python onJuly 31, 2020

安装request库
以火车的站站查询为例的post和get方法的接口测试
使用pytest测试接口

1、requests的请求机制

1、安装request库

pycharm中使用request和Pytest进行接口测试的方法
pycharm中使用request和Pytest进行接口测试的方法

2、以火车的站站查询为例的post和get请求方法

pycharm中使用request和Pytest进行接口测试的方法

2.1get请求

两种传参方式

1、_url = “网址+参数” = “网址?key1=value1&key2=value2”

response1 = request.get(url = _url)

2、字典拼接

_params = {
“key1” : “value1”,
“key2” : “value2”,
}
response2 = requests.get(url=“网址”, params = _params)
import requests

response = requests.get(url="https://api.binstd.com/train/station2s?start=北京&end=西安&ishigh=0&appkey=d737aad9a0d9dc97")
print(response.text)  #字符串格式
print(response.json()) #json,前提需要确保返回内容为json格式,否则报错

#字典方式拼接参数
print("-------------字典方式拼接参数---------------")
params = {
  "start" : "北京",
  "end" : "西安",
  "ishigh" : 0 ,
  "appkey" : "d737aad9a0d9dc97"
}
response1 = requests.get(url="https://api.binstd.com/train/station2s", params = params)
print(response1.text)
print(response1.json())

pycharm中使用request和Pytest进行接口测试的方法

2.2post请求
拼接参数方式传参

import requests

#字典方式拼接参数
data = {
  "start" : "北京",
  "end" : "西安",
  "ishigh" : 0 ,
  "appkey" : "d737aad9a0d9dc97"
}
response1 = requests.post(url="https://api.binstd.com/train/station2s", data = data)
print(response1.text)
print(response1.json())

#获取响应状态码
print(response1.status_code)

#获取原始模式
print(response1.raw)

常见的请求方法

请求方法 含义
requests.get() 获取html的主要方法
requests.head() 获取html头部信息的主要方法
requests.post() 向html网页提交post请求的方法
requests.put() 向html网页提交put请求的方法
requests.patch() 向html提交局部修改的请求
requests.delete() 向html提交删除请求

2、pytest测试接口

1、安装pytest
pip install pytest

2、使用pytest测试接口
在pytest框架中,有如下约束:
文件名要以test开头或者结尾(test_*.py / *_test.py),可以包含一个或多个test_开头的函数。
此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。

4.1首先得到响应数据

import requests
def request_ticket():
  #返回接口响应结果
  url = "https://api.binstd.com/train/ticket"
  payload = {
    "start": "北京",
    "end": "西安",
    "date": "2019-10-1",
    "appkey": "d737aad9a0d9dc97"
  }
  #response = requests.get(url = _url, parms = payload)
  response = requests.post(url = url, data = payload)
  print(response.text)
  return response
request_ticket()

4.2为了方便查看将响应结果格式化:由于太长,部分用省略号代替

{
  "status": 0, 
  "msg": "ok", 
  "result": {
    "start": "北京", 
    "end": "西安", 
    "date": "2020-06-10", 
    "list": [
      {
        "trainno": "G667", 
        "type": "G", 
        "typename": "高铁", 
        "station": "北京西", 
        "endstation": "西安北", 
        "departuretime": "11:19", 
        ...
        "departstationcode": "BXP", 
        "terminalstationcode": "EAY", 
        "startdate": "20200610", 
        ...
      }, 
      {
        "trainno": "G659", 
        "type": "G", 
        "typename": "高铁", 
        "station": "北京西", 
        "endstation": "西安北", 
        "departuretime": "11:53", 
        ...
        "departstationcode": "BXP", 
        "terminalstationcode": "EAY", 
        "startdate": "20200610", 
        ...
      }, 
      {...}, 
      {...}, 
      ...
    ]
  }
}

pycharm中使用request和Pytest进行接口测试的方法

4.3取出数据
出发站(station)和到达站(endstation)在result中的list下,怎么取到呢?----[“result”] [“list”]
---- request_ticket().json()[“result”][“list”]

def test_departur_station():
  """
  始发站测试,测试接口返回的所有车次信息,他们的出发站,和到达站都符合参数约定
  :return:
  """
  #从响应中获取测试列表   
  trainSli = request_ticket().json()["result"]["list"]  #单个的车次信息
  #trainSli是取出来的list列表
  for trainInfo in trainSli:
    assert "北京" in trainInfo["station"]  #判断‘北京'是否是列表中‘station'的值
    assert "西安" in trainInfo["endstation"] #判断到达站是不是‘西安'

#调用函数
test_departur_station()

'''def test_train_date():
  """
  发车日期测试,接口返回的所有车次信息,发车日期,都符合参数约定
  :return:
  """
  #从响应中获取测试列表
  trainSli = request_ticket().json()["result"]["list"]  #单个的车次信息
  for trainInfo in trainSli:
    assert "20200610" in trainInfo["startdate"]
    
test_train_date()'''

4.4 运行

pycharm中使用request和Pytest进行接口测试的方法

4.5 查看结果

pycharm中使用request和Pytest进行接口测试的方法

如果该路径下有多个以test开头或者结尾的文件,则会一起检测两个文件中的接口

pycharm中使用request和Pytest进行接口测试的方法

如果出现ERROR则在文件中找错误原因

pycharm中使用request和Pytest进行接口测试的方法

总结

到此这篇关于pycharm中使用request和Pytest进行接口测试的文章就介绍到这了,更多相关pycharm使用request和Pytest接口测试内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
使用Python画股票的K线图的方法步骤
Jun 28 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
python numpy中cumsum的用法详解
Oct 17 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
基于python模拟bfs和dfs代码实例
Nov 19 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 Python
python中对列表的删除和添加方法详解
Feb 24 Python
django创建css文件夹的具体方法
Jul 31 #Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 #Python
python的flask框架难学吗
Jul 31 #Python
使用PyCharm安装pytest及requests的问题
Jul 31 #Python
django和flask哪个值得研究学习
Jul 31 #Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 #Python
Python如何输出百分比
Jul 31 #Python
You might like
据说是雅虎的一份PHP面试题附答案
2009/01/07 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
php生成与读取excel文件
2016/10/14 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
python实现抽奖小程序
2020/04/15 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
python批量生成条形码的示例
2020/10/10 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
科研先进个人典型材料
2014/01/31 职场文书
公司副总经理任命书
2014/06/05 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
主要领导对照检查材料
2014/08/26 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
客房领班岗位职责
2015/02/11 职场文书
优秀党员个人总结
2015/02/14 职场文书
php将xml转化对象的实例详解
2021/11/17 PHP