Python自动化测试实战篇(7),初识pytest做一个简单的接口测试,allure输出可视化测试报告
创始人
2025-05-31 03:56:39
0次

在这里插入图片描述
这些是之前的文章,里面有一些基础的知识点在前面由于前面已经有写过,所以这一篇就不再详细对之前的内容进行描述
Python自动化测试实战篇(1)读取xlsx中账户密码,unittest框架实现通过requests接口post登录网站请求,JSON判断登录是否成功

Python自动化测试实战篇(2)unittest实现批量接口测试,并用HTMLTestRunner输出测试报告

Python自动化测试实战篇(3)优化unittest批量自动化接口测试代码,ddt驱动+yaml实现用例调用,输出HTMLTestRunner测试报告
Python自动化测试实战篇(4)selenium+unttest+ddt实现自动化用例测试,模拟用户登陆点击交互测试,Assert捕获断言多种断言
Python自动化测试实战篇(5)优化selenium+unittest+ddt,搞定100条测试用例只执行前50条

Python自动化测试实战篇(7),初识pytest做一个简单的接口测试,allure输出可视化测试报告

  • 1.pytest和unittest区别
  • 2.pytest介绍与安装
  • 3.apifox中mock模拟生成测试接口
  • 4.编写测试脚本
    • pytest的命名规则
  • 5.pytest+request做接口测试
    • 1.request的功能主要分为下面几种
    • 2.headers请求头的相关方法
    • 3.request常用9种请求
    • 4.request.data
  • 5.allure输出可视化测试报告
    • 完整代码
  • 6.关于allure中切换中文的方法
  • 7.通过测试套查看测试用例的情况

在这里插入图片描述

1.pytest和unittest区别

在这里插入图片描述

2.pytest介绍与安装

pytest是一个非常好用的而且成熟的python测试框架

  • 简单上手,灵活方便
  • 支持appium和selenium等自动化测试和接口自动化测试
  • pytest也有很多插件可以使用

pip3 install pytest
pip3 install sugar
pip3 install pytest-rerunfailures
pip3 install pytest-xdist
pip3 install pytest-assume
pip3 install pytest-html
pip3 install request

3.apifox中mock模拟生成测试接口

由于我的postman不知道为什么崩溃掉了,新增了环境变量和修改删除了一些东西以后都还是无法使用,于是我就换成了apifox来模拟接口
在这里插入图片描述

4.编写测试脚本

pytest的命名规则

  • 测试模块名用test_开头或_tsest结尾

  • 测试类必须以test开头或结尾

  • 测试函数必须以test开头或结尾

import pytestclass Test_Pytest():def test_one(self):print("测试方法1执行" )assert 2==2def test_two(self):print("测试方法2执行" )def test_three(self):print("测试方法3方法执行" )
if __name__=="__main__":pytest.main(['testpy.py'])

在这里插入图片描述

5.pytest+request做接口测试

做request接口测试之前我们需要了解

1.request的功能主要分为下面几种

  • 封装了请求头数据
  • 封装了请求正文数据,如果是GET请求没有正文
  • request是一个域对象,可以把它当成MAP来添加获取数据
  • request提供了请求转发和请求包含功能

2.headers请求头的相关方法

  • String getHeader(string name):获取指定名称的请求头
  • Enumeration getHeaderNames():获取所有请求头名称:
  • int getintHeader(String name):获取值为int类型的请求头

3.request常用9种请求

  • Get方法请求一个指定资源的表示形式
  • Post方法用于将实体提交到指定的资源
  • Head方法请求与Get方法类似,但没有请求体
  • Put方法用于请求有效载荷替换目标资源的所有
  • Delete方法删除指定的资源
  • Connect方法建立一个到目标资源标识的服务器隧道
  • Options用于描述目标资源的通信
  • Trace方法沿着到目标资源的路径执行一个消息环回测试
  • Patch方法用于对资源应用部分修改

4.request.data

主要用于请求中的数据部分,如发送一段需要请求的body信息,然后返回数据,如下图所示
在这里插入图片描述

import pytest
import requests
import allureclass Test_Pytest():def test_one(self):url = 'http://127.0.0.1:4523/m1/2459729-0-default/happyshop/login'headers = {'Content-Type': 'application/x-www-form-urlencoded'}data = {'msg': 'admin', 'code': '','result':''}reps = requests.post(url=url, headers=headers, data=data)print(reps.text)assert Truedef test_two(self):url = 'http://127.0.0.1:4523/m1/2459729-0-default/happyshop/login?apifoxResponseId=175999630'headers = {'Content-Type': 'application/x-www-form-urlencoded'}data = {'msg': 'admin', 'code': '', 'result': ''}reps = requests.post(url=url, headers=headers, data=data)print(reps.text)def test_three(self):print("测试方法3方法执行" )assert Falseif __name__=="__main__":pytest.main(['testpy.py','--alluredir', './report/xml'])

5.allure输出可视化测试报告

为allure做准备
在最尾部的时候要打印出report信息才能被allure识别出来

if __name__=="__main__":pytest.main(['testpy.py','--alluredir', './report/xml'])

allure的安装和配置看下面这篇文章
allure安装
安装完成后最后执行这个下面的代码直接生成测试报告

os.system(‘allure serve ./report/xml’)
在这里插入图片描述

完整代码

import osimport pytest
import requests
import allureclass Test_Pytest():def test_one(self):url = 'http://127.0.0.1:4523/m1/2459729-0-default/happyshop/login'headers = {'Content-Type': 'application/x-www-form-urlencoded'}data = {'msg': 'admin', 'code': '','result':''}reps = requests.post(url=url, headers=headers, data=data)print(reps.text)assert Truedef test_two(self):url = 'http://127.0.0.1:4523/m1/2459729-0-default/happyshop/login?apifoxResponseId=175999630'headers = {'Content-Type': 'application/x-www-form-urlencoded'}data = {'msg': 'admin', 'code': '', 'result': ''}reps = requests.post(url=url, headers=headers, data=data)print(reps.text)def test_three(self):print("测试方法3方法执行" )assert Falseif __name__=="__main__":pytest.main(['testpy.py','--alluredir', './report/xml'])os.system('allure serve ./report/xml')

6.关于allure中切换中文的方法

在这里插入图片描述

7.通过测试套查看测试用例的情况

在这里插入图片描述
查看失败的方法,一般来说需要增加断言进行捕获才能清楚认知到具体错误的原因,单从响应返回json来看的话只能看到接口是不是通的情况。
在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...