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

做问卷调查的是哪个网站好wordpress添加数据库

做问卷调查的是哪个网站好,wordpress添加数据库,如何将网站提交给谷歌,小程序平台推广方案前言 使用python做过自动化测试的小伙伴#xff0c;想必都知道unittest和pytest这两个单元测试框架#xff0c;其中unittest是python的官方库#xff0c;功能相对于pytest来要逊色不少#xff0c;但是uniitest使用上手简单#xff0c;也受到的很多的小伙伴喜爱。一直以来都…前言 使用python做过自动化测试的小伙伴想必都知道unittest和pytest这两个单元测试框架其中unittest是python的官方库功能相对于pytest来要逊色不少但是uniitest使用上手简单也受到的很多的小伙伴喜爱。一直以来都有小伙伴在问我pytest可以通过相关的插件来实现多线程执行测试用例为什么unittest没有呢unittest如何去实现多线程运行呢那么今天就专门来给大家聊聊如何使用多线程去执行unittest 一、unittest 测试用例的运行机制 在讲使用多线程去执行uniitest的测试用例之前我们首先来分析一下unittest中用例可以通过哪几种方式来执行。这个时候就得去看看unittest的源码了。 虽然 unittest 的底层代码是基于 C 语言实现的源码中看不到详细的代码但是我们可以发现 TestCase、TestSuite、TestRnner 三个类中都有 run 方法而且 run 方法的作用的都是执行测试用例。 TestRunner 可以执行单条测试用例以及测试套件中所有的用例TestSuite 是直接执行套件中所有的用例Testcase 中的 run 方法是执行当前这条测试用例 其实不管是 TestRunner 还是 TestSuite 的 run 方法执行用例最终还是调用了用例本身的 run 方法去执行的。用例执行的方法我们搞清楚了那么接下来我们就可以采取相关的策略使用多线程来执行了。 二、多线程执行用例的实现思路 思路一创建多个测试套件每个套件使用一个线程去执行报告优缺点优点同一个测试用例类中用例执行的先后顺序能够得到保障缺点用例需要自己手动添加到套件然后分配给各个线程会出现用例数量分配不均线程资源浪费思路二所有的用例收集到测试套件使用多线程去执行套件的测试用例优缺点优点多线程共享用例资源能够充分利用多线程的资源缺点用例执行的先后顺序不好控制 三、思路一具体实现 1、初步尝试 文件1testcase.pyimport unittestclass TestRegister(unittest.TestCase):此处用例代码以省略class TestLogin(unittest.TestCase):此处用例代码以省略文件2run_case.pyimport unittest,threadingfrom case_test.test_case import TestLogin, TestRegister# 创建2个套件每个套件使用一个线程去执行suite1 unittest.defaultTestLoader.loadTestsFromTestCase(TestRegister)suite2 unittest.defaultTestLoader.loadTestsFromTestCase(TestLogin)def work1():执行套件1unittest.TextTestRunner().run(suite1)def work2:执行套件2unittest.TextTestRunner().run(suite1)t1 threading.Thread(targetwork1)t2 threading.Thread(targetwork2)t1.start()t2.start()t1.join()t2.join() 运行上面的 run_case.py 就会发现两个线程可以同时执行测试用例但是存在一个问题用例执行完之后每个线程得到的结果是独立的无法整合到一起于是进行了以下优化。 2、再次尝试测试结果整合 前面我们在执行测试套件的时候是通过 TestRunner 去执行的TestRunner 的 run 方法的参数只能传入测试用例或者测试套件而 unittest 中 TestSuite和 TestCase 的 run 方法在调用的时候可以接收一个叫做 TestResult 的对象。而用例执行的结果就是保存在这个 TestResult 对象中。我们如果要整个测试结果可以自己先创建一个 TestResult 对象然后执行套件的时候传进入最后两个套件执行得到的测试结果都会保存在这一个 TestResult 对象中。代码如下 # 创建一个结果保存对象res unittest.TestResult()# 运行测试套件返回测试结果t1 threading.Thread(targetsuite1.run,kwargs{result:res})t2 threading.Thread(targetsuite2.run, kwargs{result: res})t1.start()t2.start()t1.join()t2.join()print(res) 运行上述代码我们成功的使用多线程运行了测试用例并且将测试用例执行的结果整合到了一起。 3、封装一个基于线程池来执行的函数 下面的代码封装用到了线程池的相关知识点大家可以自行扩展 Author:测试师-万里Time:2020/5/26 10:00E-mail:123456789qq.comCompany:五百万里信息技术有限公司import unittestfrom concurrent.futures.thread import ThreadPoolExecutorfrom test_case import TestLogin, TestRegisterdef run_test(suites, thread_count1):多线程执行用例的方法:param suite: list --包含多个套件的列表[TestSuite,TestSuite]:param thread_count: int ----执行的线程数量默认为1:return: TestResult---测试结果res unittest.TestResult()# 创建一个线程池执行测试用例with ThreadPoolExecutor(max_workersthread_count) as ts:for suite in suites:# 将套件的执行提交到线程池中ts.submit(suite .run, resultres)return resif __name__ __main__:# 创建两个套件suite1 unittest.defaultTestLoader.loadTestsFromTestCase(TestRegister)suite2 unittest.defaultTestLoader.loadTestsFromTestCase(TestLogin)# 将套件放到列表中suite [suite1, suite2]# 给根据套件的数量每个套件创建一个线程去执行res run_test(suitesuite, thread_countlen(suite))# 打印测试结果print(res) 四、思路二、代码封装 思路一实现了之后思路二再来实现就会非常简单了封装的代码如下 Author:测试师-万里Time:2020/5/26 10:00E-mail:123456789qq.comCompany:五百万里信息技术有限公司import unittestfrom concurrent.futures.thread import ThreadPoolExecutorfrom case_test.test_case import TestLogin, TestRegisterdef run_test(suite, thread_count1):多线程执行用例的方法:param suite: 测试套件:param thread_count: int ----执行的线程数量默认为1:return: TestResult---测试结果res unittest.TestResult()# 创建一个线程池执行测试用例with ThreadPoolExecutor(max_workersthread_count) as ts:for case in suite:# 将用例的执行任务提交到线程池中ts.submit(case.run, resultres)return resif __name__ __main__:# 创建两个套件suite1 unittest.defaultTestLoader.loadTestsFromTestCase(TestRegister)# 给根据套件的数量每个套件创建一个线程去执行res run_test(suitesuite1, thread_count3)# 打印测试结果print(res) 关于多线程执行 unittest 就给大家分享到这里看到这里可能有些小伙伴会问多线程执行如何生成测试报告呢目前 unittest 生成测试报告使用的几个开源的库比如 BeautifulReportHTMLTestRunner 都不支持多线程。不过要想实现的话也不难对这些模块运行用例的方法进行重写就可以实现。 关于多线程执行 unittest 就给大家分享到这里看到这里可能有些小伙伴会问多线程执行如何生成测试报告呢 那么接下来就这大家介绍一下如何使用 unittestreport 多线程运行用例并生产测试报告 五、unittestreport 多线程执行用例 使用 unittestreport 来多线程执行用例非常简单只需要在执行用例时加一个参数 thread_count指定执行的线程即可。案例如下 from unittestreport import TestRunner# 加载套件suite unittest.defaultTestLoader.discover(CASE_DIR)# 执行用例runner TestRunner(suite,filenameconf.get(report, filename),report_dirREPORT_DIR,title测试报告,tester万里,desc万里执行测试生产的报告,templates1)# 指定三个线程运行测试用例runner.run(thread_count3) 关于 unittest 多线程执行测试用例 就给大家分享到这里了喜欢的可以关注我哟关注我每天给大家带来不同的惊喜。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 ​ 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.hkea.cn/news/14373004/

相关文章:

  • 上海房地产官网网络营销渠道优化
  • 188旅游网站源码下载商城网站建设合同范本
  • 山东诚祥建设集团公司网站内蒙古网站seo优化
  • 微网站幻灯片尺寸服务商名称是什么意思
  • 企业培训网站建设手机wap网站如何建设
  • 网页设计作业讲解临沂做网络优化的公司
  • 成都英文网站建设优质的聊城网站建设
  • 皮具网站建设石家庄seo顾问
  • 呼市网站seo优化工资提成怎么算WordPress编辑
  • 网站文件服务器单位做好职工养老保险中断补缴的新闻
  • 有哪些网站可以免费做外销wordpress二次主题
  • ssc网站建设担保交易网站建设实验结论
  • 旅游网站建设国内外现状seo学徒招聘
  • 淘宝优惠劵网站建设湘潭sem优化价格
  • 六安seo网站推广报价站长工具seo综合查询权重
  • 太原网站制作好吗博客网站推广
  • 乐清公司网站建设中国市场网
  • 做征婚网站有哪些看广告赚佣金平台
  • 个人做的卖货网站网站被人做跳转改如何举报
  • 创客网站建设湖南网站托管
  • 云虚拟主机可以做视频网站不松阳县建设局网站公示
  • 上海建站推广公司wordpress 404比较多
  • 做头像网站网络品牌是什么
  • 网站备案和实名认证东莞最大的网络公司
  • 一个旅游网站怎么做曲沃网站建设
  • 网站链接分析网站的基础知识
  • 衡阳网站建设公司装修设计公司资质
  • 浙江省交通工程建设集团网站绥化市建设局官方网站
  • asp做网站的步骤wordpress防止机器评论
  • 贵阳手机网站开发网络推广培训课程4万