• 0
  • 0
分享

  前言

  在跑自动化测试中,测试过程中会用到一些测试数据,其中这些测试数据包括临时测试数据和常用到的数据,经常用到的数据,我们可以通过Excel或者yaml文件的方式进行存储,那么临时文件的呢?今天安静来介绍pytest中的一个内置函数就可以方便的帮我们解决这个问题。

  tmpdir

  tmpdir是属于pytest中的一个内置函数,这个函数表示的意思是在测试开始运行前创建一个临时文件目录,并在测试结束后进行删除。这个临时文件目录可以用来存放我们的测试数据。

  使用方法

  在测试用例后面直接写入tmpdir,需要用到创建临时文件或者临时文件夹的时候直接进行创建。

import pytest
def test_01(tmpdir):
    # 创建一个测试目录
    a = tmpdir.mkdir('测试目录')
    # 创建一个测试文件
    aa = a.join('123.txt')
    # 在这个测试文件中进行写入一行文字
    aa.write('这是一个测试文件')
    print('测试目录地址:%s'%a)
    # 读取文件中写入的内容
    txt = aa.read()
    print(txt)
    assert txt == '这是一个测试文件'
    
if __name__ == '__main__':
    pytest.main(['-vs'])

  通过pytest的方式进行读取文件内容,我们可以发现已经把这个临时文件创建完成了。为了确保安静特意去了这个文件夹下面看了下,确实存在内容。

1-1.png

1-2.png

  注意:这里安静提一句,虽然说当时临时文件没有删除,但是当我们再次调用这个临时文件后,pytest将自动进行临时文件覆盖。

  实战演练

  上面安静已经介绍了如何对tmpdir的内置函数的使用介绍,这里安静通过请求两个接口然后进行演示如何在项目中使用。

  接口1:通过填写一个随机的手机号,通过手机号归属地接口进行查询到城市地址。

  接口2:通过上述接口1的城市地址,查询出当地的天气预报情况。

  这里所产生的数据:手机号码归属地查询结果,以及当地的天气预报情况,安静全部通过tmpdir的方式进行写入到临时文件中。

import pytest
import requests
def phone():
    '''查询手机归属地'''
    url = 'http://apis.juhe.cn/mobile/get'
    data = {
        'key':"7d2b9b14adfe392c88b9c431297be543",
        'phone':"15641111111"
    }
    r = requests.post(url,data=data)
    return r.json()
def tianqi(city):
    '''查询天气预报'''
    url = 'http://apis.juhe.cn/simpleWeather/query'
    data = {
        'city':city,
        'key':'331eab8f3481f37868378fcdc76cb7cd'
    }
    r = requests.post(url,data=data)
    return r.json()
def test_01(tmpdir):
    '''测试用例1'''
    # 调用手机归属地接口
    ph = phone()
    # 创建一个临时文件
    a = tmpdir.join('123.txt')
    # 在临时文件中写入接口返回内容
    a.write(ph)
    # 获取城市名
    city = eval(a.read())['result']['city']
    print('城市的地址是:%s'%city)
    # 执行查询天气接口
    result = tianqi(city)
    # 将天气接口信息写入到文件内
    a.write(result)
    print(result)
if __name__ == '__main__':
    pytest.main(['-vs'])

  通过执行接口可以看出两个接口都成功执行了。

1-3.png

  通过查看临时文件目录,并且成功的创建了临时文件内容。

1-4.png

  总结

  安静通过一个小小的例子简单的介绍了pytest的内置函数tmpdir,当然这里创建临时文件的方法不止这一个,安静只是通过这个例子来让大家简单的认识tmpdir。具体详细的操作可以参考官方文件进行查阅。希望这个库对您能有所帮助。感谢您的阅读。



作者:测试安静   

来源:http://www.51testing.com/html/05/n-4480305.html


2021 问卷礼物图.png

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 最近这周比较忙,项目上线,没有来得及更文。昨天项目终于结束了,今天可以回归更文了。简单讲讲上个项目过程中遇到的一些我觉得可以避免的问题。对于测试新人来说可能经常会犯,但是稍微有点经验的同学都能避免的事情。昨天版本预定的是晚上6点上线,昨天上午刚过来就给实习生说,今天应该没有什么大问题了,对照着原型把版本再过一遍,以防有东西遗漏,交代完之后就全身心投入和开发扯皮昨天未完成的功能了。等到了下午的时候,见实习生那边没什么动静,我这边自己也加入查漏补缺的行列中,一页一页的功能过下去,扫到一个详情页,突然觉得有点不对劲,怎么这个标题下面这么多空白的地方呢,看着间距也太大了吧,对照着原型一看,不得了,这块...
            1 1 12797
            分享
          •   微信 Andoid 6.5.10 开始,微信官方提供了 Trace 导出工具,开发者可以在开发者工具 Trace Panel 中使用该功能。  1、安装 adb 工具  安装 brew:  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"   安装完成验证: brew --version  安装 adb: brew cask install android-platform-tools  运行ad...
            0 0 4934
            分享
          •   手机App软件与Web软件系统的架构是不一样的,手机是基于CS架构,而Web系统是基于BS架构的,所以测试手机App软件那么要考虑的东西会更多一些。  手机App测试,虽然要比Web测试复杂一些,但系统整理起来后,主要也就下面几个方面:  一、App功能测试(也叫App手工测试)  APP功能测试是指测试你这个APP的所有功能点是否能够验证通过。APP功能测试的测试用例设计需要结合产品需求和开发设计文档。这里以测试微博APP为例:  1. 发布微博,从界面上看有文字长度,是否添加图片,是否有话题,是否有@别人等等。  2. 发布微博的操作是否符合用户体验,选择照片,选择要@的人是否符合人类...
            12 12 2482
            分享
          • 一、概念1、软件缺陷(bug)的根源来自于软件开发本身2、软件失效是指软件运行时产生的一种不希望或不可接受的外部行为3、软件失效的机理可描述为:软件错误→软件缺陷→软件故障→软件失效4、缺陷引入:程序员引入的缺陷,运行环境导致的缺陷5、预防和检测(1)缺陷预防-开发角度(2)缺陷检测-动态测试a.自动化测试(缺点:维护自动化测试代码需花费大量时间;优点:重复使用率高,提高测试速度;致命弱点:“预言家难题”,很难预估测试完成情况)b.手工测试6、测试目标:软件发布前,所有重要的任务都完成了,而剩下没做的事情都是比较次要的(不影响用户的使用和愉悦感)7、软件执行的4个基本任务:接收输入、产生输出、...
            0 0 1835
            分享
          • android app自动化测试框架Appium资料整理1 自动化测试1.1 自动化测试简介自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。从广义上来讲,一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化测试。从狭义上来讲,自动化测试就是通过工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。1.2 自动化测试的优点提高效率:通过运行自动化测试脚本,就可以在夜间、午休等时间进行测试用例回归,实现无人值守测试,大大提高了测试效率。避免重复工作:每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全...
            11 11 1500
            分享
      • 51testing软件测试圈微信