pytest+yaml数据驱动自动化测试

准备包:pytest、yaml、requests库:

本篇简单讲解pytest+yaml完成简单自动化接口测试的参数驱动。该篇主要介绍单接口单变量情况的简单场景,对于复杂场景后续补充
yaml文件各式:

#注意 - 与关键字之间的空格
 - 'python'
 - 'java'
 - 'jmeter'
 - '自动化测试'
 - '性能测试'

这种yaml文件各式等价于数组:[‘python’,‘java’,‘jmeter’,‘自动化测试’,'性能测试‘
接口测试代码如下:该篇请求接口为‘https://ceshiren.com/search/query’,term为网站的搜索条件,根据yalm文件中的搜索关键字进行搜索,接口请求的status_code作为断言

@pytest.mark.parametrize('param',yaml.load(open('term.yml','r')))
def test_ceshiren(param):

    url='https://ceshiren.com/search/query?term'
    headers = {
     "authority": "ceshiren.com", "x-requested-with": "XMLHttpRequest",
               "accept": "application/json, text/javascript, */*; q=0.01", "discourse-present": "true",
               "x-csrf-token": "undefined", 
               "accept-language": "zh-CN,zh;q=0.9",
               "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36",
               "sec-fetch-site": "same-origin"}

    res=requests.get(url+param,headers)
    assert res.status_code==200
    

'param’作为参数名,将yaml文件中的搜索关键字传递给接口
该用法是基于@pytest.mark.parametrize(‘param’,[]),用文件维护信息更有利于测试用力的维护与更新,多个参数可以写为@pytest.mark.parametrize({‘param1’,[]},{‘param2’,[]})
相应对文件进行调整

你可能感兴趣的:(python,yaml)