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

网站建设金手指排名稳定seo教程百度云

网站建设金手指排名稳定,seo教程百度云,湖南益阳新增本土确诊0例,成都装饰公司目录#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09; 前言 平常我们功能测试… 目录导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜 前言 平常我们功能测试用例非常多时比如有1千条用例假设每个用例执行需要1分钟如果单个测试人员执行需要1000分钟才能跑完 当项目非常紧急时会需要协调多个测试资源来把任务分成两部分于是执行时间缩短一半如果有10个小伙伴那么执行时间就会变成十分之一大大节省了测试时间 为了节省项目测试时间10个测试同时并行测试这就是一种分布式场景 分布式执行用例的原则 用例之间是独立的没有依赖关系完全可以独立运行 用例执行没有顺序要求随机顺序都能正常执行 每个用例都能重复运行运行结果不会影响其他用例 背景 我们日常的工作当中进行自动化测试编写的测试用例会非常多测试用例一个一个的执行所需要花费的时间会很长。 想象一下如果开发改动一块代码我们需要回归一下这时候执行一下自动化用例需要花费一小时或者好几个小时的时间这是我们无法容忍的。 为了解决这个问题我们采用pytest的插件pytest-xdist来进行多进程的并发执行测试用例大大的缩短测试用例的执行时间提高效率。 并发运行测试用例 1、安装pytest-xdist pip install pytest-xdist2、多进程并发执行测试用例不支持多线程 pytest test_add.py -n NUM # NUM表示并发的进程数参数配置 -n* *代表进程数 说明 ①多cpu并行执行用例直接加个-n参数即可后面num参数就是并行数量比如num设置为3 ②-n auto 自动侦测系统里的CPU数目 ③-n num 指定运行测试的处理器进程数 3、举例 项目结构如下 代码 # file_name: test_a.py import pytest import timedef test_a_01():print(----------------- test_a_01)time.sleep(1)assert 1def test_a_02():print(----------------- test_a_02)time.sleep(1)assert 1def test_a_03():print(----------------- test_a_03)time.sleep(1)assert 1def test_a_04():print(----------------- test_a_04)time.sleep(1)assert 1if __name__ __main__:pytest.main([-s, test_a.py])# file_name: test_b.py import pytest import timedef test_b_01():print(----------------- test_b_01)time.sleep(1)assert 1def test_b_02():print(----------------- test_b_02)time.sleep(1)assert 1def test_b_03():print(----------------- test_b_03)time.sleep(1)assert 1def test_b_04():print(----------------- test_b_04)time.sleep(1)assert 1if __name__ __main__:pytest.main([-s, test_b.py])①正常运行以上代码耗时8.09s ②设置并行运行数量为4耗时3.48s大大的缩短了测试用例的执行时间。 pytest-xdist分布式测试的原理 xdist的分布式类似于一主多从的结构master机负责下发命令控制slave机slave机根据master机的命令执行特定测试任务。 在xdist中主是master从是workers。 大致原理 1、xdist会产生一个或多个workersworkers都通过master来控制。 2、每个worker负责执行完整的测试用例集然后按照master的要求运行测试而master机不执行测试任务。 pytest-xdist分布式测试的流程 第一步创建worker master会在总测试会话test session开始前产生一个或多个worker。 master和worker之间是通过execnet和网关来通信的。 实际编译执行测试代码的worker可能是本地机器也可能是远程机器。 第二步收集测试项用例 每个worker类似一个迷你型的pytest执行器。 worker会执行一个完整的test collection过程。【收集所有测试用例的过程】 然后把测试用例的ids返回给master。【ids表示收集到的测试用例路径】 master是不会执行任何测试用例集的。 注意分布式测试pytest-xdist方式执行测试时不会输出测试用例中的print内容因为主机并不执行测试用例pycharm相当于一个master。 第三步master检测workers收集到的测试用例集 master接收到所有worker收集的测试用例集之后master会进行一些完整性检查以确保所有worker都收集到一样的测试用例集包括顺序。 如果检查通过会将测试用例的ids列表转换成简单的索引列表每个索引对应一个测试用例的在原来测试集中的位置。 这个方案可行的原因是所有的节点都保存着相同的测试用例集。 并且使用这种方式可以节省带宽因为master只需要告知workers需要执行的测试用例对应的索引而不用告知完整的测试用例信息。 第四步测试用例分发 –dist-mode选项 eachmaster将完整的测试索引列表分发到每个worker。 loadmaster将大约25%的测试用例以轮询的方式分发到各个worker剩余的测试用例则会等待workers执行完测试用例以后再分发 注意可以使用pytest_xdist_make_scheduler 这个hook来实现自定义测试分发逻辑。 第五步测试用例的执行 workers 重写了 pytest_runtestloop pytest的默认实现是循环执行所有在test session这个对象里面收集到的测试用例。 但是在xdist里, workers实际上是等待master为其发送需要执行的测试用例。 当worker收到测试任务, 就顺序执行 pytest_runtest_protocol 。 值得注意的一个细节是workers 必须始终保持至少一个测试用例在的任务队列里, 以兼容 pytest_runtest_protocol(item, nextitem) hook的参数要求为了将 nextitem传给hook。 worker会在执行最后一个测试项前等待master的更多指令。 如果它收到了更多测试项, 那么就可以安全的执行 pytest_runtest_protocol 因为这时nextitem参数已经可以确定。 如果它收到一个 shutdown信号, 那么就将 nextitem 参数设为 None, 然后执行 pytest_runtest_protocol 第六步测试用例再分发–dist-modeload 当workers开始/结束执行时会把测试结果返回给master这样其他pytest hook比如 pytest_runtest_protocol就可以正常执行。 master在worker执行完一个测试后基于测试执行时长以及每个work剩余测试用例综合决定是否向这个worker发送更多的测试用例 第七步测试结束 当master没有更多执行测试任务时它会发送一个“shutdown”信号给所有worker。 当worker将剩余测试用例执行完后退出进程。 master等待所有worker全部退出。 然而此时仍需要处理诸如 pytest_runtest_logreport 等事件。 pytest实现多线程运行测试用例pytest-parallel 安装 pip install pytest-parallel常用参数配置 ① --workersn 多进程运行需要加此参数 n是进程数。默认为1 ② --tests-per-workern 多线程需要添加此参数n是线程数 如果两个参数都配置了就是进程并行每个进程最多n个线程总线程数进程数*线程数 注意 ①在windows上进程数永远为1。 ②需要使用 if name “main” :在dos中运行会报错即在命令行窗口运行测试用例会报错 示例 pytest test.py --workers 3 3个进程运行 pytest test.py --tests-per-worker 44个线程运行 pytest test.py --workers 2 --tests-per-worker 4 2个进程并行且每个进程最多4个线程运行即总共最多8个线程运行。 import pytestdef test_03():print(测试用例3操作)def test_04():print(测试用例4操作)if __name__ __main__:pytest.main([-s, test_b.py, --workers2, --tests-per-worker4])pytest-parallel与pytest-xdist对比说明 ① pytest-parallel 比 pytst-xdist 相对好用功能支持多。 ② pytst-xdist 不支持多线程 ③pytest-parallel 支持python3.6及以上版本所以如果想做多进程并发在linux或者mac上做在Windows上不起作用Workers1如果做多线程linux/mac/windows平台都支持进程数为workers的值。 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜 无论遇到多少困难和挫折都不能放弃自己的梦想。要相信自己有无限的潜力和能力勇敢地追求自己的梦想不断超越自我最终就能够取得成功。 成功并不是一种目的而是一种过程。勇敢地追求梦想不断地超越自我坚持不懈地努力下去最终就能够实现自己的价值。 每个人都有自己独特的价值要勇敢地追求自己的梦想坚持不懈地努力下去不断提升自己的能力最终就能够实现自己的价值。
http://www.zqtcl.cn/news/4974/

相关文章:

  • 申请号的网站南充网站建设与维护
  • 企业网站推广方案设计毕业设计小米发布会直播入口
  • 北京高端网站建设公司浩森宇特云服务器怎么做网站
  • 网站做蜘蛛池有用吗行业网站做的好的
  • 横琴新区公共建设局网站制作网页总结
  • 明星个人网站设计模板用源码网站好优化吗
  • 图片网站源码汕头seo排名
  • 叫人开发网站注意事项工作中存在的问题和不足
  • 贵阳58同城做网站公司seo沈阳
  • 有没有做任务的网站五金设备网站建设
  • 如何用flashfxp通过ftp访问网站服务器下载网站代码珠海微网站进入
  • 怎么在网站上放广告网站摸板
  • 哪个网站做ppt能赚钱重庆市建设工程造价信息网站
  • 网站开发地图电子招标投标平台网站建设
  • 建设银行官方网站首页个人登录做网站买好域名怎么办
  • 中山市网站开发外包公司cad精品课网站建设
  • 网站推广seo方法可以大量免费发帖的网站
  • 免费劳务网站建设上海招聘网官网
  • 公司网站建设费用的会计分录烟台优化网站公司哪家好
  • 自己的电脑做网站服务器整套网页模板
  • 网盘爬虫源码是做网站来用的国内大的网站建设公司排名
  • 越秀高端网站建设中国十大网络安全龙头
  • 免费建网站哪个模板多众鱼深圳网站建设
  • 北京泰达建设有限公司网站厦门专业网站设计公司
  • 手机网站用什么软件做的wordpress木木主题
  • 三亚网站制作中国建设银行大沥网站
  • 免费企业网站建设哪个学校网站制作多少钱
  • 网站的系统建设方式有哪些方面wordpress 安全加固
  • wordpress5.0启多站点开发软件能赚多少钱
  • 厦门市建设与管理局网站在县城做同城网站怎么样