• 0
  • 0
分享
  • 掌握这个Pytest插件,轻松切换测试环境——软件测试圈
  • 曼倩诙谐 2023-08-08 11:31:32 字数 2553 阅读 1202 收藏 0

  前言

  前面小编介绍了如何通过Pytest的插件来实现自动化测试的环境的切换,当时使用的方法是通过钩子函数进行获取命令行参数值,然后通过提前配置好的参数进行切换测试环境地址。

  今天小编再次介绍一种方法,通过Pytest的插件:pytest-base-url进行来实现。

  pytest-base-url

  pytest-base-url 是Pytest的第三方插件,主要用来帮助我们进行切换测试环境地址,其中配置方法存在两种,一种直接在命令行中进行添加url参数,一种是通过pytest.ini的方法进行提前存储测试环境地址,接下来跟着小编一起看看两种方式都是如何实现的吧。

  命令行参数传入

  命令行参数传入,这里需要在我们需要传入的测试用例中,提前加入base-url的参数名称,方便后续命令行时好直接传入参数。

# test_01.py
# coding:utf-8
import requests
def test_01(base_url):
    data = {
        'city': "上海",
        'key': 'xxxxxxxxxx'
    }
    r = requests.post(base_url, data=data)
    result = r.json()['reason']
    print(r.json())
    assert result == '查询成功!'

  测试用例编写完成后,我们通过打开命令行,进行执行对应的命令,正常我们执行只需要加上pytest -vs  执行程序就可以进行运行成功,但是在这里我们需要新加入一个参数,也就是我们的测试环境地址。

  pytest -vs --base-url 测试环境地址 执行程序。

pytest -vs --base-url http://apis.juhe.cn/simpleWeather/query  test_01.py

  运行后会发现我们的测试用例,已经成功的执行了。

1-1.png

  如果不想通过命令行形式执行,我们也可以在Pytest的运行程序下将命令行的参数直接写入进去:

# coding:utf-8
import pytest
import requests
def test_01(base_url):
    data = {
        'city': "上海",
        'key': 'xxxxxxxxx'
    }
    r = requests.post(base_url, data=data)
    result = r.json()['reason']
    print(r.json())
    assert result == '查询成功!'
if __name__ == '__main__':
    pytest.main(['-vs','--base-url','http://apis.juhe.cn/simpleWeather/query',])

1-2.png

  注意:在这里编写命令行时,一定要将--base-url和测试环境地址分开写,不然程序会报错。

  pytest.ini方法

  其中pytest.ini主要属于Pytest的配置文件工具,一些简单的参数都可以存放在这个文件中,小编等下就需要通过pytest.ini文件存放我们的测试环境。

  创建一个pytest.ini文件,将其base_url的参数存放进入:

[pytest]
base_url = http://apis.juhe.cn/simpleWeather/query

  配置文件编写好后,在通过最上方的代码,直接运行,命令行参数中就不需要添加对应的url地址和base_url的命令了。

# coding:utf-8
import pytest
import requests
def test_01(base_url):
    data = {
        'city': "上海",
        'key': 'xxxxxxxx'
    }
    r = requests.post(base_url, data=data)
    result = r.json()['reason']
    print(r.json())
    assert result == '查询成功!'

1-3.png

  这里就会有小伙伴们询问了,如何多个测试环境的地址,我这里应该如何切换呢?这个简单,我们还是通过运行pytest.ini配置文件帮我们实现这个功能,我们在pytest.ini配置文件添加参数addopts参数,且我们需要创建两个ini文件,分别代表两个测试环境。

  pytest_dev.ini文件:

# pytest_dev.ini
[pytest]
addopts = --base-url=https://test.anjing.com

  pytest_qa.ini文件:

# pytest_qa.ini
[pytest]
addopts = --base-url=https://qa.anjing.com

  然后在简单的编写一个断言判断我们想要的参数是否传入成功。

# coding:utf-8
def test_home_page(base_url):
    print(base_url)
    assert base_url == "https://test.anjing.com"

  接下来我们继续通过命令行参数执行,不过这个时候需要加入-o参数,所谓的-o参数就是读取不同的ini文件配置信息,先读取pytest_dev.ini配置文件,发现执行程序是正常的。

1-4.png

  接下来我们在读取pytest_qa.ini的配置文件,发现程序断言失败了,两个测试环境地址不一致。

1-5.png

  总结

  小编通过简单的两种方法介绍了在自动化测试过程中切换我们的测试环境,当然方法是不固定的,主要的是大家如何根据项目进行灵活的运用。

  如果您有更好的方法,可以在下方留言,大家一起交流学习,感谢您的阅读,希望本篇文章对您有所帮助。


作者:测试安静    

来源:http://www.51testing.com/html/55/n-7796955.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 概述自动化测试,顾名思义,指的是利用软件来执行测试用例并比较实际结果与预期结果的过程,以此确认软件产品的性能是否符合要求。那么,传统的手动测试方式是否还存在呢?在数字化时代之初,开发人员和测试人员需要手动执行测试,这种方法被通俗地称作“点击测试”。设想一下,当一个应用含有数百个组件和多个接口时,测试人员需要逐一手动检查它们,这个过程不仅耗时、效率低下,而且极易出错。因此,为了提升测试效率和准确性,自动化测试应运而生,它通过特定的工具自动执行这些重复的测试任务。自动化测试的优势经济高效:长期来看,可以显著降低测试成本。提高开发速度:通过减少手动测试的需求,加速测试过程。减少手动操作:自动进行重复...
            0 0 945
            分享
          •   苹果公司在增加 iPhone RAM 方面走得最远的一次是 8GB,而且是针对价格较高的 iPhone 15 Pro 和 iPhone 15 Pro Max。然而,随着人工智能竞赛的白热化,科技巨头们都在推动自己的产品加入设备上的大型语言模型(LLM),这样一来苹果很可能不得不对其产品阵容进行调整。  据一家韩国证券公司分析称,其中一些变化包括增加即将推出的 iPhone 16 的运行内存,但这些说法是在有报道称该公司正在研究如何使用 NAND 闪存运行设备上人工智能之后提出的。  爆料人 Revegnus 没有提及这家韩国证券公司的名称,但他表示,一些分析师认为,苹果将增加这些机型的运行...
            0 0 674
            分享
          • 什么是性能测试(performancetesting)答案:系统在一定的压力情况下,查看cpu,内存,磁盘,网络带宽,TPS、响应时间、并发用户数、等各项指标,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求,就是在特定的运行条件下验证系统的能力状况。什么时候做性能测试答案:功能测试已完成并稳定运行,性能测试环境已搭建,项目上线前,在生产环境做性能测试。什么是负载测试(Loadtest)答案:负载测试主要是考察软件系统在既定负载下的性能表现。就是站在用户的角度去观察一定条件下软件系统的性能表现。期望结果是用户的性能指标需求得到满足。性能指标一般体现为响应时间、并发...
            0 0 1269
            分享
          •   背景技术:  随着IT行业的繁荣,当前的浏览器软件形势极为复杂。有各种类型的浏览器和许多版本,这导致在测试网页时需要进行复杂的兼容性测试。目前正在进行兼容性, 两种测试方法是:  1)一台PC安装了多种型号的浏览器进行测试;  2)多台PC均安装了用于测试的浏览器。  由于自动网页测试将垄断整个过程,并且同一台PC上安装的多个浏览器容易发生环境冲突,因此上述兼容性测试方法1)并不理想,但上述测试方法2)不理想将消耗大量的硬件资源。  技术实现要素:  本发明克服了现有技术的不足,提供了一种浏览器兼容性测试系统和方法,用于解决兼容性测试过程中环境隔离和资源浪费的问题。  考虑到现有技术的上述...
            0 0 959
            分享
          • 简介Loadrunner是一种预测系统行为和性能的负载测试工具,它可以轻松创建虚拟用户、创建真实的负载、定位性能问题、重复测试保证系统的高性能。LR与JM对比组成Vuser GeneratorC语言脚本开发的Controller指挥官的作用,控制执行场景Analysis收集测试数据,进行结果分析的什么时候可以开始执行性能测试功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。使用Loadrunner的步骤制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果为什么用事务事务Tr...
            13 13 1619
            分享
      • 51testing软件测试圈微信