Pytest的神仙内置函数,理清自动化测试数据!

发表于:2022-7-04 09:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:软件测试小P    来源:网络

  在自动化测试中,测试过程中会用到一些测试数据,包括临时测试数据和常用数据。常用数据可以存储在Excel或yaml文件中。临时文件呢?
  今天,在Pytest中悄悄引入一个内置函数,可以帮助我们方便地解决这个问题。
  tmpdir
  Tmpdir是Pytest中内置的一个函数,意思是在测试开始运行前创建一个临时文件目录,测试完成后删除。
  这个临时文件目录可以用来存储我们的测试数据。
  使用方法
  在测试用例之后直接写tmpdir,需要的时候直接创建临时文件或者临时文件夹。
  import pytestdef 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 pytestimport requestsdef 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。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号