百度统计手机app,网站 seo 优化建议,搜索引擎官网,wordpress重装空白#x1f345; 视频学习#xff1a;文末有免费的配套视频可观看 #x1f345; 点击文末小卡片#xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 Unittest框架介绍
Unittest框架是Python中一个标准的库中的一个模块#xff0c;该模块包括许多… 视频学习文末有免费的配套视频可观看 点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快 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来写入执行报告并存放到指定的路径中。
最后祝大家都能找到心仪的工作快乐工作幸福生活广阔天地大有作为。我也整理了一波之前发布的软件测试文档【点击文末小卡片免费领取】无套路领取
同时在这我为大家准备了一份软件测试视频教程含面试、接口、自动化、性能测试等就在下方需要的可以直接去观看也可以直接【点击文末小卡片免费领取资料文档】 华为大佬三天讲完的软件测试全套教程2024最新版从基础到项目实战学完即就业