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

Posted 程序员 二黑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytest内置函数,让你不再为自动化测试数据存放发愁相关的知识,希望对你有一定的参考价值。

在跑自动化测试中,测试过程中会用到一些测试数据,其中这些测试数据包括临时测试数据和常用到的数据,经常用到的数据,我们可以通过Excel或者yaml文件的方式进行存储,那么临时文件的呢?

今天安静来介绍Pytest中的一个内置函数就可以方便的帮我们解决这个问题。

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



注意:这里安静提一句,虽然说当时临时文件没有删除,但是当我们再次调用这个临时文件后,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'])

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


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

总结

安静通过一个小小的例子简单的介绍了Pytest的内置函数tmpdir,当然这里创建临时文件的方法不止这一个,安静只是通过这个例子来让大家简单的认识tmpdir。

具体详细的操作可以参考官方文件进行查阅。希望这个库对你能有所帮助。感谢你的阅读。


资源分享

下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!

以上是关于Pytest内置函数,让你不再为自动化测试数据存放发愁的主要内容,如果未能解决你的问题,请参考以下文章

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

学习pytest+allureUI自动化记录

pytest + yaml 框架 -16.提供一些常用的内置函数和方法生成随机测试数据

自动化测试框架pytest教程

pytest文档65-内置 request 读取项目的根目录 rootdir

Allure+pytest 生成测试报告