首页 > 其他分享 >接口自动化测试

接口自动化测试

时间:2023-06-04 18:55:33浏览次数:34  
标签:info case allure 接口 pytest 测试 自动化 test 测试用例

一、安装python环境

1.前往 Python 官网(https://www.python.org/downloads/windows/)下载 Python 安装程序。请注意,下载时需要选择与您的操作系统和计算机架构相对应的版本。

2.运行下载的安装程序并按照提示进行安装。在安装过程中,请注意选择要安装的组件。通常情况下,您应该选择 “Add Python to PATH” 选项以将 
Python 添加到系统环境变量中,并方便后续使用。 3.在安装完成后,打开命令提示符或 PowerShell 窗口(在 Windows 中搜索 "cmd" 或 "PowerShell"),输入 "python" 并回车,如果出现以下信息
则表示 Python 已经成功安装: Python 3.x.x [其他信息] >>> (可选)安装 pip: pip 是一个用于管理 Python 包的工具,可以方便地安装、升级和卸载第三方库。大多数 Python 安装程序都会自动包含 pip。
如果您的 Python 版本未包含 pip,则可以从官方网站(https://pip.pypa.io/en/stable/installing/)下载并手动安装。

二、准备Excel文件——测试用例

 

 (预期状态码是200,上面的写错了!)

 

三、写python脚本

# 1.读取excel测试用例
# 2.循环每一条测试用例
# 3.执行每一条测试用例

1.安装pandas读取excel文件,在vsc终端输入命令

& D:\python3.11.3\python.exe -m pip install pandas

2.代码:test_api.py

import pandas as pd
import allure,os  # 终端命令:& D:\python3.11.3\python.exe -m pip install allure-pytest
import pytest     #需install
import requests   # 终端命令:& D:\python3.11.3\python.exe -m pip install requests

# 1.读取excel测试用例
# 2.循环每一条测试用例
# 3.执行每一条测试用例

df = pd.read_excel('校园帮接口测试用例.xlsx')
# 使用 fillna() 方法将 NaN 值替换为空字符串
df.fillna('', inplace=True)
# print(df.columns)
test_data_list = df.apply(lambda row: row.to_dict(), axis=1).tolist()
# print(test_data_list)


# 自动循环
@pytest.mark.parametrize("case_info", test_data_list)
def test_send_request(case_info):
    # 执行请求
    if (case_info["请求方式"] == "get"):
        if (case_info["输入参数"] is not None and case_info["输入参数"] != ""):
            url = case_info["接口URL"]+str(int(case_info["输入参数"]))
        else:
            url = case_info["接口URL"]
        req = requests.request(
            url=url,
            method=case_info["请求方式"]
        )
    else:
        req = requests.post(
            case_info["接口URL"],
            json=eval(case_info["JSON参数"]),
            headers=eval(case_info["URL参数"]))
    # 判断请求返回结果
    print("状态码:"+str(req.status_code))
    assert req.status_code == case_info["预期状态码"]

# for i in range(len(test_data_list)):
#     print("这是第{}条:".format(i))
#     print(test_data_list[i])
#     test_send_request(test_data_list[i])

#pytest的启动命令,生成测试报告,会产生一个文件夹allure-results,
# if __name__ == '__main__':
#     pytest.main(['-s', '-v', '--capture=sys', 'test_api.py', 
#     '--clean-alluredir',
#      '--alluredir=allure-results'])  
#     os.system(r"allure generate -c -o测试报告")

3. 使用pytest执行代码

执行命令:

pytest --alluredir=reports test_api.py

(可以在cmd执行,也可以在vsc的终端执行,前提是要安装allure插件)

 

4.使用allure生成网页版测试报告

执行命令:

allure serve reports

 

 

四、备注

1.windows安装allure
(1) allure包下载:https://github.com/allure-framework/allure2/releases
(2) 解压 -> 进入bin目录 -> 运行allure.bat,
把bin目录加入PATH环境变量

allure官网 : https://qameta.io/allure-report/

allure文档 : https://docs.qameta.io/allure/#

 

2.vsc安装allure

我们可以使用allure生成漂亮的测试报告,具体步骤如下:

1. 安装allure-pytest插件

在终端中运行以下命令安装allure-pytest插件:

```
pip install allure-pytest
```

2. 在pytest.ini配置文件中添加allure选项

在项目根目录下创建pytest.ini配置文件,并添加以下内容:

```
[pytest]
addopts = --alluredir=./reports/allure-results
```

这个配置告诉pytest将测试结果输出到./reports/allure-results目录下。

3. 运行测试并生成报告数据

在终端中运行以下命令运行所有的测试用例:

```
pytest -s -v --alluredir=./reports/allure-results tests/
```

这个命令会执行tests/目录下所有的测试用例,并将测试结果输出到./reports/allure-results目录下。

4. 生成HTML报告

在终端中运行以下命令生成HTML格式的报告:

```
allure generate ./reports/allure-results -o ./reports/allure-report --clean
```

这个命令会从./reports/allure-results目录读取报告数据,并将其转换为漂亮的HTML格式,然后输出到./reports/allure-report目录下。

5. 查看报告

打开./reports/allure-report/index.html文件即可查看生成的测试报告。

在测试报告中,我们可以看到每个测试用例的执行结果、日志信息、截图等详细信息,这有助于定位和解决问题。

 

标签:info,case,allure,接口,pytest,测试,自动化,test,测试用例
From: https://www.cnblogs.com/lxpblogs/p/17455648.html

相关文章

  • 【单元测试】Spring Data JPA + H2 测试DAO层
    1.环境配置Springboot2.7.8h22.1.2142.POM文件引入springbootparentpom点击查看代码<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.8</version......
  • 【电商api接口京东系列】获取推荐商品列表+获得商品评论演示示例
    数据采集是指获取和整理各种数据的过程,这些数据可以来自各种来源,例如互联网、社交媒体、传统媒体、设备传感器、企业内部系统等。通常,数据采集是企业或组织重要的商业活动之一。它可以帮助企业了解客户需求、产品趋势、市场机会,以及竞争对手的情况,进而做出更加明智的商业决策。......
  • requests模块 编码和wireshark测试
    结合wireshark进行测试、分析1、编码问题1.1url路径url路径中包含敏感字符,不会被url编码的字符包括:'=;,!*-会被url编码的字符包括:"<>\\非ascii字符会先进行utf-8编码,再进行url编码。比如字符'时'编码为%E6%97%B61.2直接参数和url具有基本一致的编码和非编码字符,新增......
  • 如何快速测试一个开源应用
    有的时候想分享一个开源应用给朋友分享,虽然自己云服务器,但是上面一些有一些生产应用,不方便再安装其他应用。这时,可以考虑选用三丰的云服务器 ,虽然刚开始免费云服务器的免费时间只有24小时,但是作为开源应用的测试分享基本足够了。 上面快速安装一个php8测试一下,默认没有端口限......
  • 电商平台通过API接口进行数据采集的意义
    ​    电商平台数据采集是指通过一系列的数据收集技术和方法,从电商平台上获取各种与电商活动相关的数据,并进行组织、整合、分析和利用的过程。电商平台数据采集可以获取与以下方面相关的数据: 1.商品信息:包括商品名称、描述、价格、运费、库存等数据。2.订单信息:包......
  • Web安全-渗透测试-基础知识01
    1.域名定义:域名(英语:DomainName),又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识.因为ip地址不方便记忆.而且不能显示地址组织的名称和性质,所以用域名也可以定位到响应的up,可简单理解为是ip地址的另一个称呼......
  • 测试
    godb集群的一个情况,如果对于分布式的处理,也是一样的,为什么MySQL现在做成,分布式的应用,集群这么难,不就是因为,mysql以mysql为代表的,关系型数据库里面存在了大量的表关联,一旦产生了表关联。a表,b表关联,那么如果我们把b表进行了分库分表的话你a表怎么办呢,难 ......
  • 接口测试测什么?
    1. 针对输入参数来测试当成表单来设计测试用例采用等价类,边界值,输入域等方法来设计即: 参数值: 考虑输入合法的数据.非法的数据.考虑边界值. 考虑特殊值, 考虑极限值等等.2. 补充测试a. 测试接口地址测试接口地址不......
  • 系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    PS:下面是性能测试的主要概念和计算公式,记录下:[color=red][b]一.系统吞度量要素:[/b][/color]一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参......
  • 接口管理如何做?接口实现版本管理的意义和最佳方法
    api版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEBAPI版本管理的角度提供几种常见办法:首先,对于API的设计和实现者而言,需要考虑向后兼容性,但是随着业务的发展或需求的变更往往会导致兼容性实现非常复杂,因此引入API版本管理将能......