当前位置: 首页 > news >正文

营利性网站 备案百度seo排名优化如何

营利性网站 备案,百度seo排名优化如何,中国建设银行河北省分行官方网站,用KEGG网站做通路富集分析pytest中比较高阶的应用是,使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件,用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件,以便在多个测试模块之间共享配置信息。即&#xff0…

pytest中比较高阶的应用是,使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件,用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件,以便在多个测试模块之间共享配置信息。即,conftest主要用来存放fixture,管理一些全局的fixture. 

适用场景

  •   多个测试用例文件(test_*.py)的所有用例都需要用登录功能作为前置操作,那就不能把登录功能写到某个用例文件中去了,这个时候就可以把登录功能写成一个fixture,放到conftest.py里
  • 多个case共享一套测试数据
  • 多个case共享配置信息

conftest.py配置fixture注意事项

  • pytest会默认读取conftest.py里面所有的fixture
  • conftest.py文件名称是固定的,不能改动
  • conftest.py只对同一个package下的所有测试用例生效
  • 不同目录可以有自己的conftest.py, 一个项目可以有多个conftest.py
  • 测试用例文件中不需要手动import conftest.py, pytest会自动查找
  • 在conftest.py文件中,可以定义函数、类和变量,以供测试用例中使用。这些配置可以通过参数传递给测试用例。配合测试用例中的pytest.mark.parametrize装饰器来传递参数。
  • conftest.py如果在项目根目录下,那就是对整个项目下的测试用例生效

conftest结合fixture使用

  • scope参数为session: 所有测试.py文件执行前执行一次
  • scope参数为module: 每一个测试.py文件执行前都会执行一次conftest文件中的fixture
  • scope参数为class: 每一个测试文件中的测试类执行前都会执行一次conftest文件中的fixture
  • scope参数为function:所有文件的测试用例执行前都会执行一次conftest文件中的fixture,默认scope为function.

例子:

conftest.pydata = excel_util.get_cell_range_data(CASE_BASE_PATH, CASE_INFO_SHEET, 2, 2, 1, 10)@pytest.fixture(params=data)  # 这里使用了参数化
def login(request):   # 登录功能,返回uuid, tokenparam = request.paramurl = param['url']api = param['api']params = param['parameter']params = substitution_tool.var_substitute(params, '登录')globalVar = param['globalVar']  url += api + '&' + paramsres = request_util.send_httprequest('post', url).json()  print("res=", res)gv = globalVar_util.saveGlobals(res, globalVar)  #这里把uuid,token保存到全局变量中yield gv # 返回包含有uuid,token的字典gv

这是一个封装登录功能的fixture, 通过params=data先传入登录需要的用户名和密码数据,然后经过fixture实现返回uuid,token的功能。

conftest.py@pytest.fixture()
def case_info(request):   # 获取测试用例的数据param = request.paramreturn param

这是一个结合pytest.mark.parametrize装饰器实现参数传递的fixture, 可以读取excel表格中的测试用例信息。

看测试文件中的测试方法:

data_login_state = excel_util.get_cell_range_data(CASE_BASE_PATH, CASE_INFO_SHEET, 3, 6, 1, 9)@allure.severity("normal")
@pytest.mark.parametrize("case_info", data_login_state, indirect=True)
def test_login_tai(case_info, login):caseId = case_info['caseId']apiName = case_info['apiName']caseTitle = case_info['caseTitle']params = case_info['parameter']'''for key in login.keys():value = login.get(key)if key in params:params = params.replace('${'+key+'}', str(value))'''params = substitution_tool.gv_substitute(params)url = case_info['url']api = case_info['api']url += api + '&' + paramsprint("url=", url)print(f"caseId: {caseId}, apiName:{apiName}, caseTitle:{caseTitle} begins to test!")logger.info(f"caseId: {caseId}, apiName:{apiName}, caseTitle:{caseTitle} starts to test!")assertFields = case_info['assertFields']res = request_util.send_httprequest('post', url).json()assert_util.assert_result(res, assertFields)

这里就结合pytest.mark.parametrize装饰器实现参数的传递,这里方法test_login_tai使用了两个fixture,一个是login, 一个是case_info, 两个fixture一块使用,既接收到了login返回的uuid,token, 又实现了测试用例的参数化。其中,indirect=True代表case_info是作为函数传递给test_login_tai方法的,不是作为变量。

最后使用pytest命令去执行pytest --html=./testreport.html

测试执行情况如上,日志信息有caseId, apiName, caseTitle.

生成的testreport.html测试报告:

http://www.mmbaike.com/news/58785.html

相关文章:

  • 网站建设有什么需求分析廊坊优化技巧
  • 深圳网站制作公司电话seo诊断的网络问题
  • 抚顺营销型网站建设百度关键词指数
  • 阿里巴巴国际站首页什么是优化
  • 设计做兼职最好的网站新的数据新闻
  • 大城网站制作搜索引擎优化名词解释
  • 做网站收费标准点击量十大销售管理软件排行榜
  • 在线图片编辑器精简版杭州明开seo
  • 杭州制作网站公司网络推广需要多少费用
  • 宁波专业网站营销淘宝流量
  • 陕西省城乡建设厅官方网站sem培训
  • 专门做会议的网站大一网页设计作业成品免费
  • 高密 网站建设seo的重要性
  • 温州网络科技有限公司搜索引擎优化的具体措施
  • 专业网页制作网站推广公司百度智能云官网
  • 网站建设交流群网站seo规划
  • 广州网站建设工作室外链提交
  • 深圳网站制作哪家好域名购买
  • 国内哪个推广网站做的好百度网页版浏览器入口
  • 公众号里链接的网站怎么做的色盲测试图看图技巧
  • 武汉文理学院机电与建筑工程网站百度广告推广怎么收费了
  • 做网站 嵌入支付百度seo关键词优化方案
  • 商务网站建设期末作业0元免费做代理
  • 上海招聘网站建设微信公众号运营推广方案
  • 长沙做网站的公司对比搜索引擎优化seo多少钱
  • 乐清网站制作公司招聘网站排名工具
  • 武汉中天建设公司电话关键词seo服务
  • 抚顺市建设银行网站怎么查搜索关键词排名
  • 做建站较好的网站来客seo
  • 郑州做网站公司电话如何优化网络速度