多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Unittest框架的接口自动化测试实现流程

更新时间:2021-09-13 02:30:00 作者:admin 浏览:526

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.dl(self.变量)来调用之前封装好的登录功能,然后再界说一个test打头的函数这儿主要用于编写实际测试用例,然后在test函数中将slef.变量再次进行赋值给一个变量方便于操作。接下来进行定位查找栏,输入产品名称,点击查找按钮,用F12获取xpath值然后用find_element_By_xpath对查找栏进行定位并赋值给一个变量。

Unittest框架的自动化测试实现流程

  这儿说下为啥用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来写入履行陈述并寄存到指定的路径中。

  以上是关于Unittest框架的接口自动化测试实现流程的介绍,由多测师亲自撰写。  http://www.aichudan.com/

联系电话

17727591462

返回顶部