前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytest+requests+allure实现接口自动化测试系列(1)-requests介绍

pytest+requests+allure实现接口自动化测试系列(1)-requests介绍

作者头像
搁浅同学
发布2022-07-21 14:59:12
9070
发布2022-07-21 14:59:12
举报

之前的几篇将pytest常用的功能都介绍的差不多了,后面接下来会介绍基于pytest基础上实现一个基本功能的接口自动化测试框架

一个接口自动化测试框架一般包括以下部分:

  1. 测试用例编写:测试脚本、测试数据等
  2. 测试执行:测试用例的执行
  3. 测试报告:展示测试结果
  4. 其他配置管理:日志记录等

一、requests介绍

我们做接口自动化测试之前,发送请求是我们的第一步,然后再获取响应,做相关的断言。python给我提供了一个requests,是专门用来处理http请求的。通过pip命令安装

代码语言:javascript
复制
pip install requests

二、requests基本使用

1.发送get请求

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests

r = requests.get("http://127.0.0.1:5000/api/Account/GetToken")
print(r) #打印返回的响应对象
print(r.content) #打印响应二进制nei r 
print(r.text)   #打印响应的文本
print(r.json()) #打印返回json格式的文本

2.发送带参数的get请求

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests

data = {"key1": 1, "key2": 2}
r = requests.get("http://127.0.0.1:5000/api/Account/GetToken", params=data)
print(r)
print(r.content)
print(r.text)
print(r.json())
print(r.url)
# 打印的url是
# http://127.0.0.1:5000/api/Account/GetToken?key1=1&key2=2,已经把参数加到rul上面

3.发送带post请求

代码语言:javascript
复制
data = {
    "bookType": 1
}
r = requests.post("http://127.0.0.1:5000/book/list", data=data)
print(r.json())

#如果是json格式的话可以通过json参数
data = {
    "bookType": 1
}
r = requests.post("http://127.0.0.1:5000/book/list", json=data)
print(r.json())

4.发送带put请求

代码语言:javascript
复制
data = {
    "shopType": 1
}
r = requests.put("http://127.0.0.1:5000//bookmall/api/v1/organization/list/shops", json=data)
print(r.json())
# put请求和post类似

5.发送带delete请求

代码语言:javascript
复制
data = {
    "token": "58ac23a0d30841ca83d1d05cfdcb7665"
}
r = requests.delete("http://127.0.0.1:5000/api/Account/DelToken", params=data)
print(r.json())
# delete和get类似

三、requests接入pytest

新建test_requests,示例代码

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
class Testrequests:

    def test_requests(self):
        url = "http://127.0.0.1:5000/book/list"
        data = {"bookType": 1}
        r = requests.post(url=url, json=data)
        print(r.json())

接口返回的内容

代码语言:javascript
复制
{
    "data": {
        "list": [
            {
                "author": "人民美术出版社",
                "binding": "",
                "booksDisplayList": [
                    {
                        "author": "人民美术出版社",
                        "isbn": "9787102078762",
                        "location": "14010056(南区艺术设计店)",
                        "qty": "",
                        "shopId": 1101,
                        "shopName": "中心书城",
                        "title": "人美画谱-八大山人 山水"
                    }
                ],
                "clscode": "1704000000",
                "clsname": "绘画",
                "imageUrl": "http://image.szbookmall.com/500/4993/089/4993089_500.jpg",
                "isbn": "9787102078762",
                "pages": 0,
                "price": 49.0,
                "pubdate": "2018-06-01",
                "pubname": "人美",
                "title": "人美画谱-八大山人 山水",
                "translator": ""
            }
        ],
        "total": 1
    },
    "respCode": 10000000,
    "respMark": "",
    "respMessage": "success"
}

那我们可能关注接口返回的内容有respCode,total等,我们先断言respCode,修改示例代码

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests


class Testrequests:

    def test_requests(self):
        url = "http://127.0.0.1:5000/book/list"
        data = {"bookType": 1}
        r = requests.post(url=url, json=data)
        assert r.json()['respCode'] == 10000000
      # r.json()['respCode']是获取respCode的值,然后断言

上述就是requests结合pytest简单的实践,更多的使用方法可以查看requests文档,还是中文的哦!

https://docs.python-requests.org/zh_CN/latest/user/quickstart.html#id2

下篇会分享下requests的封装

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 暴走的软件测试Tester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档