51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1348|回复: 0
打印 上一主题 下一主题

Pytest内置函数,让你不再为自动化测试数据存放发愁!

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:05
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-12-21 10:15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前言
      在跑自动化测试中,测试过程中会用到一些测试数据,其中这些测试数据包括临时测试数据和常用到的数据,经常用到的数据,我们可以通过Excel或者yaml文件的方式进行存储,那么临时文件的呢?今天安静来介绍pytest中的一个内置函数就可以方便的帮我们解决这个问题。

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

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

    2. def test_01(tmpdir):
    3.     # 创建一个测试目录
    4.     a = tmpdir.mkdir('测试目录')
    5.     # 创建一个测试文件
    6.     aa = a.join('123.txt')
    7.     # 在这个测试文件中进行写入一行文字
    8.     aa.write('这是一个测试文件')
    9.     print('测试目录地址:%s'%a)
    10.     # 读取文件中写入的内容
    11.     txt = aa.read()
    12.     print(txt)
    13.     assert txt == '这是一个测试文件'
    14.    
    15. if __name__ == '__main__':
    16.     pytest.main(['-vs'])
    复制代码
     通过pytest的方式进行读取文件内容,我们可以发现已经把这个临时文件创建完成了。为了确保安静特意去了这个文件夹下面看了下,确实存在内容。


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

      实战演练
      上面安静已经介绍了如何对tmpdir的内置函数的使用介绍,这里安静通过请求两个接口然后进行演示如何在项目中使用。
      接口1:通过填写一个随机的手机号,通过手机号归属地接口进行查询到城市地址。
      接口2:通过上述接口1的城市地址,查询出当地的天气预报情况。
      这里所产生的数据:手机号码归属地查询结果,以及当地的天气预报情况,安静全部通过tmpdir的方式进行写入到临时文件中。
    1. import pytest
    2. import requests
    3. def phone():
    4.     '''查询手机归属地'''
    5.     url = 'http://apis.juhe.cn/mobile/get'
    6.     data = {
    7.         'key':"7d2b9b14adfe392c88b9c431297be543",
    8.         'phone':"15641111111"
    9.     }
    10.     r = requests.post(url,data=data)
    11.     return r.json()
    12. def tianqi(city):
    13.     '''查询天气预报'''
    14.     url = 'http://apis.juhe.cn/simpleWeather/query'
    15.     data = {
    16.         'city':city,
    17.         'key':'331eab8f3481f37868378fcdc76cb7cd'
    18.     }
    19.     r = requests.post(url,data=data)
    20.     return r.json()
    21. def test_01(tmpdir):
    22.     '''测试用例1'''
    23.     # 调用手机归属地接口
    24.     ph = phone()
    25.     # 创建一个临时文件
    26.     a = tmpdir.join('123.txt')
    27.     # 在临时文件中写入接口返回内容
    28.     a.write(ph)
    29.     # 获取城市名
    30.     city = eval(a.read())['result']['city']
    31.     print('城市的地址是:%s'%city)
    32.     # 执行查询天气接口
    33.     result = tianqi(city)
    34.     # 将天气接口信息写入到文件内
    35.     a.write(result)
    36.     print(result)
    37. if __name__ == '__main__':
    38.     pytest.main(['-vs'])
    复制代码
    通过执行接口可以看出两个接口都成功执行了。

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

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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-19 01:30 , Processed in 0.071463 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表