范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

软件测试系列Pytest用例执行顺序

  只有一个py文件
  如果测试case只存在于单个.py文件,测试case默认从上到下执行。
  可以使用pytest-ordering来控用例执行顺序。 @pytest.mark.run(order=3) def test_01():     print("test_01")     time.sleep(1.0)  @pytest.mark.run(order=2) def test_two():     print("test_two")     time.sleep(10)  @pytest.mark.run(order=1) def test_regin():     print("用例test_regin")     time.sleep(1.5)存在多个py文件
  1、如果测试case存在于多个.py文件中,默认是按照文件名的ascii码顺序执行,进入文件后,默认按照从上到下顺序执行每个测试用例。test_user.py  # 用户相关     class TestUser:         def test_user_create:         def test_user_login:         def test_user_delete           test_order.py  # 订单相关     class TestOrder:         def test_order_create:         def test_order_list:         def test_order_delete           test_stock.py  # 库存相关     class TestStock:         def test_stock_add:         def test_stock_list:         def test_stock_reduce
  1)按照文件名ascii排序:test_order > test_stock > test_user
  2)test_order_create > test_order_list > test_order_delete > test_stock_add > test_stock_list > …
  2、如果单个.py测试文件中使用了pytest-order插件,那么该文件中添加了order的测试用例将会最先执行,没添加的将会按照1的顺序执行,这样就会出现测试用例的顺序在多文件中交叉执行的现象。(所以单个.py文件在使用pytest-order插件的情况下,建议每个case都带上order=x,且x不要相同)test_user.py  # 用户相关     class TestUser:         @pytest.mark.run(order=1)         def test_user_create:         def test_user_login:         @pytest.mark.run(order=2)         def test_user_delete           test_order.py  # 订单相关     class TestOrder:         def test_order_create:         def test_order_list:         def test_order_delete           test_stock.py  # 库存相关     class TestStock:         def test_stock_add:         def test_stock_list:         def test_stock_reduce
  1)由于test_user文件中的case使用了 pytest-order插件,所以优先执行使用了order排序的 case
  2)test_user_create > test_user_delete> test_order_create> … > test_stock_add > … > test_user_delete
  3、如果多个.py文件使用了pytest-order插件,如每个order指定的顺序不冲突,按照order指定的顺序执行,如果有冲突,就会出现在多个.py文件中交叉执行,不符合预期的情况。test_user.py  # 用户相关     class TestUser:         @pytest.mark.run(order=1)         def test_user_create:         def test_user_login:         @pytest.mark.run(order=2)         def test_user_delete           test_order.py  # 订单相关     class TestOrder:         def test_order_create:         def test_order_list:         def test_order_delete           test_stock.py  # 库存相关     class TestStock:         @pytest.mark.run(order=1)         def test_stock_add:         @pytest.mark.run(order=2)         def test_stock_list:         def test_stock_reduce
  1)test_stock 和 test_user 存在 order 冲突,所以按照文件名ascii顺序排序
  2)test_stock_add > test_user_create > test_stock_list > test_user_delete > order相关 > test_stock_reduce > test_user_login 需求:不要在多个文件中来回执行case,保证测试用例顺序为:用户模块-->订单模块-->库存模块
  方式一: 通过修改文件名,使得文件名ascii码排序,和测试case执行顺序一致,确保case中没有pytest-order插件test_1_user.py  # 用户相关     class TestUser:         def test_user_create:         def test_user_login:         def test_user_delete           test_2_order.py  # 订单相关     class TestOrder:         def test_order_create:         def test_order_list:         def test_order_delete           test_3_stock.py  # 库存相关     class TestStock:         def test_stock_add:         def test_stock_list:         def test_stock_reduce
  通常情况下.py文件是根据模块去命名的,所以通过修改文件名实现预期的执行顺序,并不是很友好。
  方式二:如果使用pytest-order插件控制,必须保证每个文件的order值是不能重复的,后一个.py文件order最小值必须大于前一个.py文件最大值,这样就可以确保文件执行顺序。这样在增加测试用例后,就可能需要修改很多order顺序。test_user.py  # 用户相关     class TestUser:         @pytest.mark.run(order=1)         def test_user_create:         @pytest.mark.run(order=3)         def test_user_login:         @pytest.mark.run(order=2)         def test_user_delete           test_order.py  # 订单相关     class TestOrder:         @pytest.mark.run(order=4)         def test_order_create:         @pytest.mark.run(order=5)         def test_order_list:         @pytest.mark.run(order=6)         def test_order_delete           test_stock.py  # 库存相关     class TestStock:         @pytest.mark.run(order=7)         def test_stock_add:         @pytest.mark.run(order=8)         def test_stock_list:         @pytest.mark.run(order=9)         def test_stock_reduce
  方式三:通过pytest提供的勾子方法pytest_collection_modifyitems,对case执行顺序进行修改# conftest.py   def pytest_collection_modifyitems(config, items)     # 期望用例顺序按照.py文件执行     appoint_classes = {"TestUser": [], "TestOrder": [], "TestStock": []}       for item in items:         for cls_name in appoint_classes:             if item.parent.name == cls_name:                 appoint_classes[cls_name].append(item)     items.clear()     for cases in appoint_classes.values():         items.extend(cases)
  用户只需要将其新增的测试模块class按照预期的顺序添加到appoint_classes中即可,简单灵活。

新工业革命数字化网络化智能化第四次工业革命以来,以物联网大数据云计算5G人工智能区块链为代表的新一代信息技术加速发展,不断驱动着人们的生产生活向数字化网络化智能化方向发展。在新一代信息技术的推动下,新材料新能知鱼创意周报Intel13代曝光众多数码新品发布索尼首款全画幅可换镜头遥控云台电影机ILMEFR7发布对不起兄弟们,发布会猜错了,竟然不是FX30发布,但本月应该会发布的,不过惊奇的是,发布会竟然发布了一台云台电影机,这时候应该冲击林丹纪录的强人出现了,看这些数据,巅峰林丹能否战胜安赛龙时隔5年再次夺得世锦赛冠军,目前世界排名第一的安赛龙已经无人可以阻挡其冲击各项纪录的脚步了。37连胜,这个数字真的有些恐怖。想当年,超级丹林丹在巅峰时期,创造的连胜纪录为31连胜。专访蚂蚁集团副总裁韦韬如今谈数据安全,我们在谈些什么?自2018年Facebook(现已更名Meta)剑桥门数据泄露事件爆发,欧盟出台严格的GDPR法规开始,短短四年间,数据安全一跃成为全球热点话题。一个宽泛统计是,在当前全球近百部与韩国不听劝告,加快萨德系统部署,对华贸易面临重大问题当地时间9月1日,韩国产业通商资源部发布了韩国8月份的贸易情况,韩国贸易逆差规模达94。7亿美元,创下66年来的最高水平。而且目前韩国已经连续5个月出现逆差,这还是2008年全球金美国登月恐失败?数百亿打造拼装货,SLS发射系统靠谱不靠谱?美国航空航天局NASA将要在本月底发射SLS发射系统,任务是将猎户座载人飞船送往月球轨道并安全返回。这次的发射意味着美国重返月计划正式进入实施阶段,该计划名为阿尔忒尼斯登月计划。8电池刺客上线新能源车修不起?刚刚过去的8月,新能源车除了继续保持快速增长外,也出现了不少负面新闻。有汽车博主爆料,沃尔沃旗下原价34万元的极星新能源车,电池损坏之后,更换费用竟然高达54万元,猝不及防的高价让价格贵了?iQOO11系列现身,2K屏加骁龙8Gen2近乎完美作为vivo旗下最为成功的手机品牌,iQOO可以说是最近高光不断,其最新发布的iQOO10系列也是受到了大家的一致好评,不得不说蓝厂今年的策略收获了不少忠实的用户。而除了目前已经发中国足球深夜突传地震消息,巨头王登峰被查,假球案或引重磅大鱼文少川北京时间8月30日晚间,中国足球又扔下一记重磅炸弹,据多家官方媒体报道指出,主抓中国足球青少年足球部分的,教育部体育卫生与艺术教育司司长王登峰,涉嫌严重违纪违法,目前正在接受中国亚轨道运载器重复飞行成功,此前美国已放弃,技术难在哪?我国亚轨道运载器重复使用试验成功中国亚轨道飞行器有哪些进步关于载人航天一直以来有种说法当年苏联宇航员尤里加加林第一次进入太空,那只是一次亚轨道飞行。1961年4月12日苏联东方1号美丽刘家峡一句话安利你的家乡黄河从门前流过一黄河从我家门前流过。晨起,我的第一个不经意动作,就是推开窗户看你,从冬到夏,从春到秋。晴天,你是瓦蓝瓦蓝的,清澈得见底雨天,你是烟雾飘妙的,朦胧如
你看谁来了牛莉王丽云闫学晶助阵导演黄力加本期天津卫视你看谁来了邀请到导演黄力加,常言道影视作品是导演的艺术,黄力加的众多作品不仅频频获奖,还能广泛赢得观众的认可,与他合作过的演员牛莉沈傲君王丽云闫学晶无不对他赞叹有加。黄被导演娶走的9位女星,个个貌美如花气质非凡,导演赚了娱乐圈美女如云,业务能力强高颜值和完美身材的女星比比皆是。而其中一些适龄结婚的女星,有的人选择了为事业继续打拼,有的人选择了将生活的重心兼顾到家庭。而这些结婚的女星中,有些貌美如花广州市市场监管部门对演员景甜违法广告代言行为作出行政处罚2021年底,市场监管总局广告监测发现演员景甜为广州无限畅健康科技有限公司相关商品的广告代言涉嫌违反广告法有关规定,按工作流程将有关线索派发广东省广州市市场监管部门依法核查处理。广郑钦文PK科内时间出炉,黄金时间央视直播,郑钦文有望再创历史国际网球近期最为火爆的是法网,中国网球这几天最为热门的无疑是郑钦文。00后小花郑钦文今年首次参加法网也是首次进入正赛,也获得了法网的首胜,她的起点已经超越了所有金花,成为最被看好的演员苗圃和王大治青梅竹马,嫁给大21岁老公,婚后生下龙凤胎2012年举办的国剧盛典晚会上,苗圃和罗晋凭借着穆桂英挂帅获得年度网络最受欢迎荧幕情侣奖项。两人在台下接受采访时,主持人看见罗晋跟苗圃很登对,便开起两人的玩笑,鼓励罗晋,抓紧机会表40集警察荣誉今晚开播,演员阵容强大,2大看点,有爆款潜质在美国德州校园枪击案,又有一条新闻上了热搜。一个美国芝加哥市的警察在追捕偷车嫌疑人时,向一名已经举起双手投降的13岁黑人男孩开枪,致后者重伤。对一个双手举高手无寸铁背对着执法者的小40集警察荣誉今晚首播,张若昀白鹿主演,10位实力派演员加盟五月份警匪剧集中爆发,侧重点各不相同,虽迎合了不同口味的观众,可没有一部是大众款!不过今晚央八开播的警察荣誉他的侧重点是普通基层民警的故事,对标广大普通百姓生活,有爆款潜质。先说说王心凌母亲徐美珠离异后有痛与辛酸,女儿恋爱她跟着操心王心凌在浪姐3里的一首爱你,勾起一代人的回忆杀。40岁,穿上学生装,霎时回春。在她身上,一点苍老的痕迹都找不到。有网友开玩笑,称她吃过防腐剂。王心凌的美貌,很大一部分遗传自母亲。母张嘉益安娜的爱人今晚开播,6位实力派坐镇,也该火了吧?一部积压了六年的电视剧,还能有什么作为?但如果这部剧的演员名单中,有一个名字是张嘉益,结果可能就完全不同。何况,当下的国剧,正是缺爆款的时候。无论是东方卫视北京卫视联播的正午阳光新张若昀警察荣耀今晚开播,8位实力派演员坐镇,央视再出剧王5月的压轴大戏,终于要上场了。说起来5月的国剧,也是让人唏嘘,那么多预定爆款,最后都没爆。先是上月底开播的陈坤白宇的风起陇西和张译的重生之门,一个高口碑却收视不振,一个演技争议影响民间故事木匠盖房,宅基下挖出大蛇放生,他一时心善却救了自己明朝时期,真定府平山县地处太行山东麓滹沱河上游。在县城南边有一个叫温塘的小镇,在明代以前,又称里社。镇上西郊大陈庄,住着一位年近五旬的老汉,名叫贺延庆,是镇上有名的木匠。可是他命不