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实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
深入学习python的yield和generator
Mar 10 Python
Python3.6正式版新特性预览
Dec 15 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
django将数组传递给前台模板的方法
Aug 06 Python
python生成器用法实例详解
Nov 22 Python
Python 日期的转换及计算的具体使用详解
Jan 16 Python
对python中return与yield的区别详解
Mar 12 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 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 代码规范小结
2012/03/08 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
JS中的BOM应用
2018/02/02 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
python获取mp3文件信息的方法
2015/06/15 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python温度转换实例分析
2018/01/17 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
AUC计算方法与Python实现代码
2020/02/28 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
个人思想理论学习的自我鉴定
2013/11/30 职场文书
小学生班会演讲稿
2014/01/09 职场文书
工程专业应届生求职信
2014/02/19 职场文书
务虚会发言材料
2014/12/25 职场文书
委托书格式要求
2015/01/28 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL