接口自动化测试基础篇

在这里插入图片描述

一、目前市面上实现接口自动化测试的方式和行情

  1. 主流接口测试工具实现接口自动化(适用于中小型的公司或项目)10-15K左右,50%Postman+Newman+git/Svn+Jenkins(基于Javascript语言)接口自动化
    Jmeter+Ant+Git/Svn+Jenkins (基于Java和BeanShell语言)接口自动化
  2. 基于代码的接口自动化(适用于大中型公司或一线互联网公司)15-30K左右,40%Python+Requests+Yaml+Pytest+Allure+Logging+热加载+Jenkins持续集成接口自动化
  3. 基于平台的接口自动化(适用于于特大型或外包型公司)30K以上,10%
    测试开发。

二、全面认识Requests模块以及常用的方法和底层原理requests模块式用于发送Http请求以及接口http响应的python的第三方库。

安装
pip install requests
详解requests: Alt+Enter自动导包
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、接口自动化实战和封装

在这里插入图片描述

四、接口自动化框架封装(统一请求封装)

在这里插入图片描述

data一般填的是表单,表单就是键值对格式
在这里插入图片描述
下面这种传的是json型数据
简单理解:大括号的是对象,中括号的是数组。
json是字符串,字典是对象。
在这里插入图片描述
r"E:\picture"=“E:\picture”
在这里插入图片描述
test_api.py

import pytest
import requests


# requests.get()
# requests.post()
# requests.put()
# requests.delete()
# requests.request()
# requests.session()

class TestApi:
    access_token = ""  # 类变量,是在所有方法中都可以使用的变量,通过类名来访问

    # 获取鉴权码
    def test_get_token(self):
        url = "https://api.weixin.qq.com/cgi-bin/token"
        datas = {
            "grant_type": "client_credential",
            "appid": "wx74a8627810cfa308",
            "secret": "e40a02f9a8097df497e6aaf93ab80"
        }
        res = requests.get(url=url, params=datas)
        # 把json数据保存到result里边,再用result的key去取access_token值
        # 取到之后,把值保存到全局变量access_token里边,然后将取到的值传到后面,实现接口关联。
        result = res.json()
        TestApi.access_token = result["access_token"]
        print(res.json())

    # 编辑标签接口
    def test_edit_flag(self):
        # access_token来自上面的res.json()的返回值
        # 字符串的拼接
        url = "https://api.weixin.qq.com/cgi-bin/tags/update?access_token=" + TestApi.access_token
        datas = {"tag": {"id": 134, "name": "广东人"}}
        res = requests.post(url=url, json=datas)
        print(res.json())  # 返回的是字典

    # 文件上传 通过file来传参,不是通过data和json来传参
    # post请求,所以知道要上传的是def post(url, data=None, json=None, **kwargs)括号里的值
    def test_file_upload(self):
        url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=" + TestApi.access_token
        datas = {
            "media": open("E:\\shu.jpg")
        }
        res = requests.post(url=url, files=datas)
        print(res.json())


if __name__ == '__main__':
    pytest.main()

接口统一请求封装

send_request.py

import requests


class SendRequest:
    # 回话,回话对象能够自动的管理Cookie关联
    # 类变量通过类名调用,即要用sess时,要用SendRequest.sess来访问
    sess = requests.Session()

    # all_send_request是一个方法,方法通过对象来访问,
    # 即要调用all_send_request得用SendRequest().all_send_request
    def all_send_request(self, method, url, **kwargs):
        print("-----接口测试开始-----")
        print("请求方式:%s" % method)
        print("接口地址:%s" % url)
        if "params" in kwargs.keys():
            print("请求params参数:%s" % kwargs["params"])
        if "json" in kwargs.keys():
            print("请求json参数:%s" % kwargs["json"])
        if "files" in kwargs.keys():
            print("请求files参数:%s" % kwargs["files"])
        res = SendRequest.sess.request(method, url, **kwargs)
        print("接口返回:%s"%res.text)
        print("-----接口测试结束-----")
        print("\n")
        return res

test_api.py

import pytest
import requests
from common.send_request import SendRequest


# requests.get()
# requests.post()
# requests.put()
# requests.delete()
# requests.request()
# requests.session()


class TestApi:
    access_token = ""  # 类变量,是在所有方法中都可以使用的变量,通过类名来访问

    # 获取鉴权码
    def test_get_token(self):
        url = "https://api.weixin.qq.com/cgi-bin/token"
        datas = {
            "grant_type": "client_credential",
            "appid": "wx74a8627810cfa308",
            "secret": "e40a02f9a8097df497e6aaf93ab80"
        }
        res = SendRequest().all_send_request(method="get", url=url, params=datas)
        # res = requests.get(url=url, params=datas)
        # 把json数据保存到result里边,再用result的key去取access_token值
        # 取到之后,把值保存到全局变量access_token里边,然后将取到的值传到后面,实现接口关联。
        result = res.json()
        TestApi.access_token = result["access_token"]
        print(res.json())

    # 编辑标签接口
    def test_edit_flag(self):
        # access_token来自上面的res.json()的返回值
        # 字符串的拼接
        url = "https://api.weixin.qq.com/cgi-bin/tags/update?access_token=" + TestApi.access_token
        datas = {"tag": {"id": 134, "name": "广东人"}}
        res = SendRequest().all_send_request(method="post", url=url, json=datas)
        # res = requests.post(url=url, json=datas)
        print(res.json())  # 返回的是字典

    # 文件上传 通过file来传参,不是通过data和json来传参
    # post请求,所以知道要上传的是def post(url, data=None, json=None, **kwargs)括号里的值
    def test_file_upload(self):
        url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=" + TestApi.access_token
        datas = {
            "media": open("E:\\shu.jpg")
        }
        res = SendRequest().all_send_request(method="post", url=url, files=datas)
        # res = requests.post(url=url, files=datas)
        print(res.json())


if __name__ == '__main__':
    pytest.main()

在这里插入图片描述
学习视频

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
接口自动化测试可以通过以下步骤进行测: 1. 需求分析: 首先,你需要了解接口的功能和需求,明确接口的输入和输出。 2. 用例设计: 根据需求分析,设计相应的测试用例。测试用例应包括正常情况和异常情况的测试,以覆盖各种可能的情况。 3. 编写脚本: 使用合适的工具和编程语言,如Fiddler、SOAPUI、PostMan、Robot Framework或Java testNG,编写接口自动化测试脚本。其中脚本可以包括发送请求、接收响应和校验结果的操作。 4. 执行测试: 运行编写的测试脚本,自动发送请求并获取响应。测试工具会比较实际响应与预期结果是否一致,并生成测试报告。 5. 结果分析: 分析测试报告,查看测试结果和异常情况,定位问题所在,并进行修复。 6. 可选: 自动化测试脚本可以结合其他工具,如python nosetests框架,实现自动执行测试,并通过邮件发送测试报告。 总结来说,接口自动化测试是通过编写测试脚本,自动发送请求并验证响应结果的过程,以提高测试效率和准确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [接口测试基本](https://blog.csdn.net/weixin_30394981/article/details/98518129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【入门接口自动化测试](https://blog.csdn.net/Xsk215/article/details/115868319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛_Chenpangzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值