python之web自动化测试框架
Posted Balllyh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之web自动化测试框架相关的知识,希望对你有一定的参考价值。
梳理下搭建web自动化框架的流程:
创建目录:
cases:存放测试用例,unittest框架要求用例名必须以test开头,所以命名test_case.py
test_case.py代码如下:继承unittest.TestCase类下面的方法setupclass(),teardownclass()。然后把用例放进去。每个页面作为一个用例
‘‘‘这里写业务的用例 用例要用到page unittest‘‘‘ from page.basePage import Page import unittest class UiTester(unittest.TestCase):#继承unittest.TestCase类下面的方法setup(),teardown() # def setUp(self):#每条测试用例执行之前,先执行它 # pass # def tearDown(self):#每条测试用例执行之后,执行它 # pass @classmethod def setUpClass(cls):#类里面的函数执行之前,最先执行它(所有用例执行之前,执行一次) cls.page=Page()#实例化,打开浏览器 cls.page.open()#打开url网页 def test_a_login(self):#这是case,每个页面里的功能点,用例与数据源分离,方便维护 self.page.send_username() self.page.send_passwd() self.page.login() self.assertTrue(self.page.check_login()) def test_b_creatbug(self): self.page.clickbug() # 进入到bug页面 self.page.mentionbug() # 点击提bug按钮,进入到提bug页面 self.page.selectmodule() # 选择所属模块 self.page.bugtype() # 选择bug类型 self.page.os() # 选择操作系统 self.page.browser() # 选择浏览器 self.page.version() # 选择影响版本 self.page.assignto() # 选择分配人 self.page.deadline() # 选择截止日期 self.page.bugtitle() # bug标题 self.page.context() # bug步骤 self.page.mailto() # 超送人 self.page.file() self.page.save() self.assertTrue(self.page.check_creatbug()) @classmethod def tearDownClass(cls):#类里面的所有测试用例执行之后,最后执行它(所有用例执行之后,执行一次) cls.page.quit()
lib目录:
pyse.py文件主要存放操作元素的方法比如:click(),send_keys(),double_click(),drag_and_drop()等等
page目录:basepage.py,根据PO思想,将每个页面作为一个类,每个页面的功能点作为这个类的一个函数。将所有页面写出来
在用例文件test_case.py中调用上面的函数,每个页面作为一个用例,调用每个页面的函数
bin:start.py写运行用例的流程:
创建测试集合,找到测试用例,将每个测试用例加到测试集合中,运行用例,产生报告。
from lib.logger import logger from lib.path import WEBCASEPATH,REPORTPATH from lib.HTMLTestRunner import HTMLTestRunner import unittest from lib.tool import Tool class Main(object): def run(self): Tool().clear_picture() suite = unittest.TestSuite() cases = unittest.defaultTestLoader.discover(WEBCASEPATH) print(cases) for case in cases: print(case) suite.addTest(case) f = open(REPORTPATH,‘wb‘)#打开一个报告文件 runner = HTMLTestRunner(f,verbosity=1,title=u‘测试报告‘, description=u‘用例执行情况:‘) runner.run(suite) f.flush() f.close()
以上是关于python之web自动化测试框架的主要内容,如果未能解决你的问题,请参考以下文章
python自动化web自动化:7.测试框架实战三之并发执行用例