我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python+pytest自动化测试封装怎么实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python+pytest自动化测试封装怎么实现

本篇内容介绍了“python+pytest自动化测试封装怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

例如单个接口的请求代码如下:

import requestsheaders = {    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"}url = "https://mp.toutiao.com/profile_v4/"res = requests.get(url=h_url, headers=headers)

假设我们需要将上面这段代码编写成测试框架能执行的测试用例,仅仅只是这样写代码显然是不够的,还需要进行如下补充:

需要将代码封装成单元测试框架 (pytest或unittest) 能识别的测试函数或测试类,否则将不会被识别执行。需要加上断言,即结果与期望之间的对比,单元测试框架才能判定该用例执行结果是否通过,结果==期望则说明通过,否则失败。

python中函数以及类的封装这里不做过多说明,这篇文章的目的是让大家明白在接口自动化测试中一般怎样封装测试代码

一、测试用例封装的一般规则

测试用例的封装有两种,测试函数和测试类,封装的一般规则如下:

一个测试函数对应一条测试用例。测试类中可定义多个测试方法,一个测试方法对应一条测试用例,测试类可以看作是一个测试用例集。pytest中测试函数或测试方法的命名必须以test开头,测试类名必须以Test开头。具体命名规则可以参考我之前的文章pytest(3)-测试命名规则。对于单接口的测试校验,一个单接口的测试用例只包含一个接口请求,即将一个接口请求封装成一个测试函数或测试方法。对于场景(多接口) 的测试校验,一条场景测试用例需请求多个接口,因此需要将多个接口请求封装在同一个测试函数或方法中。一般封装一个接口的正向校验、异常校验封装成不同的方法,并封装在同一个测试类中。如定义一个登陆的测试类,正确用户名、密码请求封装成一个方法 (即一条测试用例),正确用户名、错误密码请求封装成另一个方法 (即另一条测试用例)。也可以将某个功能点或功能相关联的接口用例封装在同一个测试类中。比如个人中心涉及到的接口,可以封装在同一个测试类中二、测试函数的封装

一般而言,一个测试函数对应一条用例。上面的代码编写成一条测试用例,示例如下:

python+pytest自动化测试封装怎么实现

 强调,pytest中测试函数命名必须以test开头,如test_get_home。

三、测试类/方法的封装

一个测试类相当于一个测试用例集,类中的每个方法对应一条测试用例。以登录接口为例,封装成测试类,示例如下:

python+pytest自动化测试封装怎么实现

 强调,pytest中测试类命名需要以Test开头,如TestLogin,且测试类中不能有init方法。测试类中测试方法必须以test开头,如test_login_normal。

四、示例代码

pytest中可以使用命令行或者使用代码方式即 pytest.main() 执行用例,具体可参考文章pytest(1)-简介。

完整的示例代码如下:

import requestsimport pytestimport jsondef test_get_home():    '''    请求首页接口    :return:    '''    headers = {        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"    }    url = "https://www.cnblogs.com/lfr0123/"    res = requests.get(url=url, headers=headers)    # 断言,判断返回结果的code是否等于200,当然实际接口测试中一般返回结果中还会有别的字段需要断言    assert res.status_code == 200 class TestLogin:    '''    登录接口校验    '''    url = "http://127.0.0.1:5000/login"    headers = {"Content-Type": "application/json;charset=utf8"}     def test_login_normal(self):        '''正确用户名、正确密码登录'''        data = {            "username": "AndyLiu",            "password": "123456"        }        res = requests.post(url=self.url, json=data, headers=self.headers)        # 断言        assert res.status_code == 200        assert json.loads(res.text)["token"]     def test_login_error(self):        '''正确用户名、错误密码登录'''        data = {            "username": "AndyLiu",            "password": "111111"        }        res = requests.post(url=self.url, json=data, headers=self.headers)        # 断言        assert res.status_code == 200        assert not json.loads(res.text)["token"]if __name__ == '__main__':    pytest.main()

“python+pytest自动化测试封装怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python+pytest自动化测试封装怎么实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python+pytest自动化测试封装怎么实现

本篇内容介绍了“python+pytest自动化测试封装怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!例如单个接口的请求代码如下:i
2023-07-02

Python+Requests+PyTest+Excel+Allure接口自动化测试怎么实现

本篇内容主要讲解“Python+Requests+PyTest+Excel+Allure接口自动化测试怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python+Requests+PyT
2023-07-05

Python怎么实现自动化测试

本篇文章为大家展示了Python怎么实现自动化测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码
2023-06-14

Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

本文主要介绍了Python+Requests+PyTest+Excel+Allure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-23

python实现hive自动化测试

本程序主要实现hive权限测试。系统中有管理员用户single和测试用户test。在路径/home/test/下,将用例和预期结果写在xml文件中。        执行过程:kinit single用户,beeline -u -e登录并执行
2023-01-31

怎么用Python+Pytest实现压力测试

这篇“怎么用Python+Pytest实现压力测试”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python+Pyte
2023-07-05

UIAutomation自动化测试怎么实现

UIAutomation是一种自动化测试工具,它可以通过模拟用户操作来进行界面的自动化测试。实现UIAutomation自动化测试的步骤如下:1. 确定测试目标:首先需要明确要测试的界面和功能,确定测试的目标。2. 编写测试用例:根据测试目
2023-08-20

如何实现 Java 的 WebService 自动化测试?(java怎么实现webservice自动化测试)

在Java开发中,WebService自动化测试是一项重要的任务,它可以帮助开发人员快速、准确地验证WebService的功能和性能。以下是实现JavaWebService自动化测试的步骤:一、准备工作
如何实现 Java 的 WebService 自动化测试?(java怎么实现webservice自动化测试)
Javawebservice2024-12-20

教你怎么用python selenium实现自动化测试

一、安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器
2022-06-02

Jenkins中怎么实现自动化测试

Jenkins是一个持续集成工具,可以通过配置自动化测试任务来实现自动化测试。以下是在Jenkins中实现自动化测试的一般步骤:创建一个新的Jenkins任务:在Jenkins的主界面点击“新建任务”,选择“构建一个自由风格的软件项目”或者
Jenkins中怎么实现自动化测试
2024-03-05

PHP中封装性的自动化测试方法

摘要:自动化测试是一个重要的软件开发实践,它可以提高测试的效率和准确性。在PHP开发中,封装性是实现自动化测试的关键。本文将介绍一些PHP中封装性的自动化测试方法,并给出具体的代码示例。测试框架的选择在PHP开发中,有许多流行的测试框架可供
2023-10-21

python自动化测试框架pytest和unittest的区别是什么

这篇文章给大家介绍python自动化测试框架pytest和unittest的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、用例设计规则1.unittest(1)测试类必须继承unittest.TestCa
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录