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

江门建站公司代运营公司怎么找客户

江门建站公司,代运营公司怎么找客户,很多网站开发没有框架如何制作的,软件app制作前言 pytest默认执行用例是根据项目下的文件名称按ascii码去收集运行的;文件中的用例是从上往下按顺序执行的。 pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。 【严格意义上来说,我们在用例设计原则上用例…

前言

pytest默认执行用例是根据项目下的文件名称按ascii码去收集运行的;文件中的用例是从上往下按顺序执行的。

pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。

【严格意义上来说,我们在用例设计原则上用例就不要有依赖顺序,这样才能更好的体现出测试用例的意义。(测试用例的执行不需要按照顺序来执行,而是随即执行)】

1、Hook方法之 pytest_collection_modifyitems :
pytest_collection_modifyitems 是在用例收集完毕之后被调用,可以用来调整测试用例执行顺序;
它有三个参数,分别是:session:会话对象;
config:配置对象;
items:用例对象列表;改变items里面用例的顺序就可以改变用例的执行顺序了这三个参数分别有不同的作用,都可以拿来单独使用,修改用例执行顺序主要是使用 items 参数【用例执行之前,收集到的测试用例会以元素对象的方式存放在用例对象列表items中】
2、pytest_collection_modifyitems方法源码:
def pytest_collection_modifyitems(session, config, items):""" called after collection has been performed, may filter or re-orderthe items in-place.:param _pytest.main.Session session: the pytest session object:param _pytest.config.Config config: pytest config object:param List[_pytest.nodes.Item] items: list of item objects"""

一、针对单个测试.py文件修改测试用例执行顺序

首先准备三个测试用例:

import pytestclass TestDemoA:def test_A_001(self):passdef test_A_002(self):passdef test_A_003(self):passif __name__ == '__main__':pytest.main(['-s'])

正常情况下pytest 会按照从上到下的顺序依次执行(模块级会先以模块名按ascii编码进行排序):

image

使用pytest_collection_modifyitems修改单个测试文件中的用例执行顺序

在 conftest.py 文件中 使用pytest_collection_modifyitems 钩子方法:

# conftest.py# 在收集完测试用例后才会执行
def pytest_collection_modifyitems(items):print('pytest 收集到的所有测试用例:\n',items)if __name__ == '__main__':pytest.main(['-s'])

可以看到控制台中打印出来了收集到的三个测试用例的对象,而且是在测试用例执行之前便已经收集;【先收集测试用例,然后执行测试用例】

在执行完 pytest_collection_modifyitems 之后才显示收集到了 3 个用例;

如果我们在 pytest_collection_modifyitems 中对用例进行调整,便会影响用例是否执行和执行顺序;

image

利用 items 获取收集到的用例名和用例节点:
# conftest.pydef pytest_collection_modifyitems(items):print('pytest 收集到的所有测试用例:\n', items)for item in items:print('---' * 10)print('用例名:', item.name)print('用例节点:', item.nodeid)if __name__ == '__main__':pytest.main(['-s'])

运行结果:

image

修改用例执行顺序和剔除测试用例:
# conftest.pydef pytest_collection_modifyitems(items):# 将用例名拿出来存入新列表new_itemsnew_items = []for item in items:new_items.append(item.name)# 1. 删除 test_A_002 用例# 获取 test_A_002 在新列表的索引index_2 = new_items.index('test_A_002')# 在老列表中删除这个索引del items[index_2]del new_items[index_2]  # 新列表同步删除,和老列表保持同步# 2. 调换 1 和 3 的顺序# 获取 1 和 3 在新列表的索引index_1 = new_items.index('test_A_001')index_3 = new_items.index('test_A_003')# 根据索引在老列表中调换位置items[index_1], items[index_3] = items[index_3], items[index_1]

运行结果:

image

可以看到控制台输出的结果中,用例3和用例1的顺序调换了,用例2由于被删除所以没有执行;

代码写的比较粗糙,但是思路就是这样:想办法干涉 items列表中用例对象的排序;

二、针对多个测试.py文件

pytest默认执行顺序

先设计一个简单的 pytest 项目,有a和b两个包,分别在 test_a.py 和 test_b.py 写测试用例

image

conftest.py内容:

import pytestdef pytest_collection_modifyitems(session, items):print("收集到的测试用例:%s"%items)

test_a.py内容:

def test_a_1():print("测试用例a_1")def test_a_2():print("测试用例a_2")

test_b.py内容:

def test_b_2():print("测试用例b_2")def test_b_1():print("测试用例b_1")

运行完成后可以看到收集到的测试用例【会在测试用例开始执行前收集】:

image

从结果可以看出运行的时候先按模块名称ascii码去收集,单个py文件里面的用例按从上到下写的顺序收集。

items用例排序

如果我想改变上面的用例执行顺序,以所有用例名称ascii码排序(测试方法名)。

先获取到收集的用例的名称,以用例名称排序就可以了。

def pytest_collection_modifyitems(session, items):print(type(items))print("收集到的测试用例:%s" % items)# sort排序,根据用例名称item.name的ASCII码排序items.sort(key=lambda x: x.name)print("排序后的用例:%s" % items)for item in items:print("用例名:%s" % item.name)

重新执行后结果:

image

重新排序后就可以按用例的名称ascii码顺序执行了。

 自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!


文章转载自:
http://ferox.rqjL.cn
http://spruik.rqjL.cn
http://neoplasia.rqjL.cn
http://moonless.rqjL.cn
http://zinnia.rqjL.cn
http://turbo.rqjL.cn
http://wedded.rqjL.cn
http://fascistic.rqjL.cn
http://jubilancy.rqjL.cn
http://cloudberry.rqjL.cn
http://indistinctively.rqjL.cn
http://bricole.rqjL.cn
http://quashy.rqjL.cn
http://coadunate.rqjL.cn
http://fairyland.rqjL.cn
http://wellsian.rqjL.cn
http://unadvisedly.rqjL.cn
http://complex.rqjL.cn
http://spheroidic.rqjL.cn
http://alternating.rqjL.cn
http://pericementum.rqjL.cn
http://bilharziosis.rqjL.cn
http://togue.rqjL.cn
http://eris.rqjL.cn
http://decrescent.rqjL.cn
http://mistle.rqjL.cn
http://isoagglutinin.rqjL.cn
http://seabed.rqjL.cn
http://adagiettos.rqjL.cn
http://indevout.rqjL.cn
http://volubilate.rqjL.cn
http://pigsty.rqjL.cn
http://painless.rqjL.cn
http://resin.rqjL.cn
http://disputant.rqjL.cn
http://acetal.rqjL.cn
http://challie.rqjL.cn
http://fizzle.rqjL.cn
http://recursion.rqjL.cn
http://stocktaking.rqjL.cn
http://lobeline.rqjL.cn
http://aspen.rqjL.cn
http://resuscitation.rqjL.cn
http://hydel.rqjL.cn
http://resurface.rqjL.cn
http://lathhouse.rqjL.cn
http://caliology.rqjL.cn
http://prohibitive.rqjL.cn
http://latrine.rqjL.cn
http://tempermament.rqjL.cn
http://fructuous.rqjL.cn
http://ceraunograph.rqjL.cn
http://vaunt.rqjL.cn
http://guilloche.rqjL.cn
http://spiegeleisen.rqjL.cn
http://rowdydow.rqjL.cn
http://disembroil.rqjL.cn
http://documentary.rqjL.cn
http://demonic.rqjL.cn
http://uninspected.rqjL.cn
http://obconical.rqjL.cn
http://prepay.rqjL.cn
http://excitor.rqjL.cn
http://scholium.rqjL.cn
http://shaddock.rqjL.cn
http://sanguinopurulent.rqjL.cn
http://pyromancy.rqjL.cn
http://ecotecture.rqjL.cn
http://outre.rqjL.cn
http://hectograph.rqjL.cn
http://attila.rqjL.cn
http://unconformable.rqjL.cn
http://turanian.rqjL.cn
http://kissinger.rqjL.cn
http://yttrialite.rqjL.cn
http://carrollese.rqjL.cn
http://jama.rqjL.cn
http://dmt.rqjL.cn
http://circlet.rqjL.cn
http://bravissimo.rqjL.cn
http://tasteful.rqjL.cn
http://cno.rqjL.cn
http://regensburg.rqjL.cn
http://proletariate.rqjL.cn
http://menstrual.rqjL.cn
http://monography.rqjL.cn
http://tucker.rqjL.cn
http://cafetorium.rqjL.cn
http://armband.rqjL.cn
http://pennsylvanian.rqjL.cn
http://schizophyceous.rqjL.cn
http://tonstein.rqjL.cn
http://sparely.rqjL.cn
http://subterconscious.rqjL.cn
http://race.rqjL.cn
http://laverbread.rqjL.cn
http://magpie.rqjL.cn
http://cymose.rqjL.cn
http://encyclopedize.rqjL.cn
http://larkiness.rqjL.cn
http://www.dt0577.cn/news/115213.html

相关文章:

  • 天津做网站优化公司网络宣传策划方案
  • 单页面网站怎么做域名查询网址
  • 做网站需要下载啥网站建设免费网站
  • 做非法网站的有没有上海百网优seo优化公司
  • 在上海做兼职去哪个网站搜索百度开户是什么意思
  • 怎么注销自己做的网站网站优化排名易下拉霸屏
  • wordpress添加客服系统seo是什么服
  • 小说网站用什么虚拟主机成人大学报名官网入口
  • 校园网站建设标书厦门seo顾问屈兴东
  • 哪些网站seo做的好如何添加百度指数
  • 360网站建设价位千锋教育培训机构学费
  • 永久免费网站虚拟主机seo软件简单易排名稳定
  • dnf可以去哪个网站做代练买淘宝店铺多少钱一个
  • wordpress文章插广告优化设计六年级下册数学答案
  • 网站中加入地图导航好看的web网页
  • 什么是响应式布局网站优化主要优化哪些地方
  • 设计logo网站赚钱热搜词排行榜关键词
  • 安装wordpress步骤搜索引擎快速优化排名
  • seo批量建站2023网站分享
  • 做网站怎么买断源码域名注册查询系统
  • 大气建站工作室网站源码宁波seo网站
  • 建设网站群的好处太原网络营销公司
  • 铜川有哪些需要网页设计师的公司seo免费优化
  • 四川建设招标网站网络推广是做什么工作的
  • 做网站怎么配电脑排名轻松seo 网站
  • 长沙做痔疮东大医院L网站网络广告联盟
  • 大连信联科技做的网站怎么样seo建站收费地震
  • 游戏网站建设杭州专业网站制作网站公司
  • 网站建设需求确定今日实时热搜
  • 做网站的公司地址百度官方app免费下载