实例介绍:Unittest框架及自动化测试实现流程
点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快Unittest框架介绍Unittest框架是Python中一个标准的库中的一个模块该模块包括许多的类如 test case类、test suit类、texttest runner类、texttest result类、test loader类。test case类的话一个test case 就是一个测试用例一个测试用例包含一个完成的流程包括setup表示初始化用例run表示运行teardown表示还原测试场景。Test suit类在自动化中往往一个场景需要编写一个或者多个测试用例那么就需要把这些多个用例一起执行这时候需要把用例收集起来就可以通过testsuite来处理可以把testsulte当成一个用例容器而在testsuite中就有一个addtest方法可以将用例添加到这个容器里面形成一个套件。Texttextrunner类该类是用来执行用例的其中包含一个run方法该方法不但可以运行单个用例也可以运行testsuite中的多个用例并将执行结果保存到texttestresult里。Testloader类该类帮我们搜索所有test开头的测试用例并将搜索到的方法用testsuite收集起来所以使用unittest框架编写测试用例的时候用例命名需要用test打头。Unittest框架结构分为三部分首先是setup部分用于设计初始化环境的该类中方法执行的时候都会先执行setup中的代码。运行部分这里是编写测试用例的地方所有的用例命名都需要用test开头最后是teatdown部分这里是用例执行完后还原测试环境的。自动化实现流程我说下电商下单自动化测试流程吧因为是基于Unittest框架进行编写所以需要用import unittest导入unittest模块还需要导入webdriver模块。因为需要用webdriver方法去调用谷歌浏览器的驱动来打开浏览器然后先定义一个类在参数中输入unittest.testcase用来继承unittest.testcase中的类然后定义setup方法在setup中先将webdriver.Chrome赋值给self.变量。chrome是我用的谷歌浏览器的驱动并用login.dlself.变量来调用之前封装好的登录功能然后再定义一个test打头的函数这里主要用于编写实际测试用例然后在test函数中将slef.变量再次进行赋值给一个变量方便于操作。接下来进行定位搜索栏输入商品名称点击搜索按钮用F12获取xpath值然后用find_element_By_xpath对搜索栏进行定位并赋值给一个变量。这里说下为啥用xpath进行定位因为有时候id 和name 等属性值不是唯一的或者没有所以直接使用xpath进行定位会比较好能解决百分90的定位问题然后使用send_keys()去进行输入操作和click()进行点击按钮操作此时页面中会搜索出我搜索的商品仍然通过xpath定位和click()操作搜索出的商品页面会新开窗口进入商品详情页这时候就需要用window handles获取所有窗口的句柄并赋值给一个变量然后使用switch to window加变量索引值切换到新窗口。有时候网页会加载比较慢所以需要使用from time import sleep导入时间模块然后使用sleep等待3秒确保网页加载完成后进行下一步操作然后在用find_element by xpath.click选择商品的规格型号和商品数量接下来通过find_element_by_xpath.text获取商品详情页中我选择的规格型号、商品数量、商品单价、订单小计/合计通过find_element_by_xpath.click点击立即购买按钮页面进入到确认订单页然后通过find_element_by_xpath.text获取确认订单页规格型号、商品数量、商品单价、订单小计/合计与商品详情页选择的数据使用if判断进行比较。如果一致就print 成功否则else pirnt失败确保订单中的数据是我在商品详情页中选择的数据再接下来点击提交订单操作进行下单下单后通过调用封装好的数据库读取模块传参ip/dbuser/dbpwd/dbname/sql进行访问数据库中order库获取我的订单数据然后用order库中获取的数据与下单的数据进行if判断比较判断数据库中的订单数据是否正确如果正确就print 成功否则else pirnt失败。然后就是定义teardown方法在teardown中用close命令关闭浏览器然后就是进行调用执行执行方法有三种第一种unittest.main()main的话就是执行了testloader类中的方法帮我们搜索test开头的用例并执行执行顺序是按ascll码分布顺序运行的。第二种方法是用unittest.testsuit方法先将unittest.testsuit赋值给一个变量然后通过这个变量使用addtest命令添加用例在使用unittest.testrunner中的run方法执行这个变量。执行顺序的化是按照添加的顺序执行的。第三种方法是用unittest.default testloader.discover加用例存放的路径pattern等于模块名再赋值给一个变量然后同样通过unittest.testrunner中的run方法执行这个变量然后为了查看执行详情结果所以需要写入执行报告。写入执行报告的话需要先导入一个HTMLtestrunnerCN 模块使用这个模块中 的htmltestrunner来写入执行报告并存放到指定的路径中。最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。

相关新闻

【限时福利】8元无门槛红包,手慢无!

【限时福利】8元无门槛红包,手慢无!

🔥 8元无门槛红包,人人可领!领取口令:新用户福利018077点外卖、打车、购物都能直接抵扣!活动限时,数量有限,先到先得!

2026/7/18 23:39:02阅读更多 →
泰坦尼克号观后感:那些留在心里的片刻

泰坦尼克号观后感:那些留在心里的片刻

《泰坦尼克号》给我的第一印象不是热闹,而是一种很稳的叙事耐心。它没有依赖夸张反转制造刺激,而是把人物放进真实处境里推进,让每个决定都有重量。最打动我的是结尾留下的余味,不解释太满,却让主题更清晰。发布时间&a…

2026/7/18 23:39:02阅读更多 →
智能戒指方案设计:从需求到BOM清单的完整设计流程

智能戒指方案设计:从需求到BOM清单的完整设计流程

上一篇聊了选型避坑的经验,这篇以智能戒指为例,说说完整的选型流程——从一个需求开始,到最后拿到BOM清单,整个流程怎么走。智能戒指这个品类,选型工作量不小。NFC天线、蓝牙SoC、电源管理芯片,每个器件的选…

2026/7/18 23:39:02阅读更多 →
LinearGradient 线性渐变:从暖金到琥珀的品牌色应用

LinearGradient 线性渐变:从暖金到琥珀的品牌色应用

前言 渐变是提升 UI 视觉品质的重要手段。HarmonyOS 提供了 LinearGradient 和 RadialGradient 两种渐变方式,支持多色阶、角度控制等高级功能。 “海风日记“以“日落海景“为设计灵感,围绕暖金、琥珀、橙色的渐变体系建立了完整的品牌视觉语言。全项…

2026/7/19 1:23:18阅读更多 →
5分钟掌握Windows窗口自由:WindowResizer强制调整任意窗口大小

5分钟掌握Windows窗口自由:WindowResizer强制调整任意窗口大小

5分钟掌握Windows窗口自由:WindowResizer强制调整任意窗口大小 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些固执的Windows窗口而烦恼吗?老旧软…

2026/7/19 1:23:18阅读更多 →
Java架构师核心能力:从并发编程到分布式系统设计

Java架构师核心能力:从并发编程到分布式系统设计

1. 从Java开发者到架构师的思维跃迁第一次被称作"架构师"的那个下午,我正对着白板上的分布式事务方案发呆。团队里新来的应届生指着我说:"这个问题得问架构师",我才意识到角色已经转变。Java架构师不是简单的职称升级&am…

2026/7/19 1:23:18阅读更多 →
Android NDK开发实战:性能优化与JNI接口详解

Android NDK开发实战:性能优化与JNI接口详解

1. 初识Android NDK开发第一次接触NDK开发是在2018年,当时接手一个需要处理大量图像运算的相机项目。Java层的处理速度始终达不到产品要求,帧率卡在15fps上不去。团队里的老工程师建议:"试试用C重写核心算法吧"。就这样&#xff0c…

2026/7/19 1:23:18阅读更多 →
震撼!金华GEO优化案例揭秘,效率提升竟然如此简单!

震撼!金华GEO优化案例揭秘,效率提升竟然如此简单!

引言在数字化转型的浪潮中,越来越多的企业开始意识到生成式引擎优化(GEO)的重要性。特别是对于浙江省的制造业重镇——金华而言,五金制造、新能源汽车零部件、电子商务及生物医药四大支柱产业正面临前所未有的挑战与机遇。本文将通…

2026/7/19 1:23:18阅读更多 →
Python爬虫实战:慕课网课程数据采集与分析

Python爬虫实战:慕课网课程数据采集与分析

1. 项目背景与需求分析慕课网作为国内知名的IT技能学习平台,汇集了大量优质的编程课程资源。对于学习者而言,快速获取完整的课程信息(如课程名称、讲师、价格、评分、学习人数等)能够帮助其高效筛选适合自己的学习内容。传统手动收…

2026/7/19 1:21:18阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/18 22:49:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →