找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
把代码进行一个封装
from selenium import webdriver
class Bbs:
    def __init__(self):     #创建一个构造函数
        self.driver=webdriver.Chrome()
        self.driver.get('http://192.168.207.128/bbs/forum.php')
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)


    def login(self):
        '''封装一个登录方法'''
        self.driver.find_element_by_id('ls_username').send_keys('admin')
        self.driver.find_element_by_id('ls_password').send_keys('123456')
        self.driver.find_element_by_css_selector('.pn').click()


    def manage_center(self):     #封装一个管理中心
        # self.login()
        self.driver.find_element_by_link_text('管理中心').click()
if __name__ == '__main__':
    b=Bbs()
    b.login()
    b.manage_center()


# unittest
import unittest
class Test(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        print('类开始')
    @classmethod
    def tearDown(cls) -> None:
        print('类结束')

    def setUp(self) -> None:
        print('方法开始')
    def tearDown(self) -> None:
        print('方法结束')

    def test001(self):
        print('111')
    def test002(self):
        print('222')
    def test003(self):
        print('333')
    def test_a(self):
        print('444')
    def test_A(self):
        print('555')
if __name__ == '__main__':
    unittest.main()        #运行unittest单元测试框架里面所有的代码,函数的入口

# 1、在unittest框架里面写的用例名称必须以test开头
# 2、用例运行顺序按照用例名称ASCII  0-9 A-Z a-z
# 3、方法开始和方法结束在每个用例运行之前和结束都会运行一次
# 4、类开始和类结束在所有用例运行前和后只运行一次

#自动化测试用例方法
import unittest       #导入unittest这个库
from selenium import webdriver
from time import sleep
from ui_auto.HTMLTestRunner3_New import HTMLTestRunner
class Test_baidu(unittest.TestCase):     #TestCase这类是用来组织和管理自动化测试用例的
    def setUp(self):
        self.driver=webdriver.Chrome()
        self.driver.get('https://www.baidu.com')
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)
    def tearDown(self):
        sleep(3)
        self.driver.quit()
    def test001(self):
        self.driver.find_element_by_id('kw').send_keys('selennium')
    def test002(self):
        self.driver.find_element_by_id('kw').send_keys('python')
# def all_case():
#     '''封装一个套件,套件就是用来装用例的,相当于是一个容器'''
#     suite=unittest.TestSuite()                           #创建一个suite对象,用来添加需要运行的用例
#     suite.addTest(Test_baidu('test001'))                  #把test001 这条用例添加到套件里面
#     suite.addTests([Test_baidu('test001'),Test_baidu('test002')])
#     return suite
if __name__ == '__main__':
    #第一种方法,运行了上面封装的所有用例
    # unittest.main()
    #第二种运行方式(运行套件里面添加的部分用例)
    # runner=unittest.TextTestRunner()    #创建一个运行用例的对象
    # runner.run(all_case())      #运行上面定义的套件里面的用例

    #第三种方法通过模糊用例匹配
    start_dir=r'C:\Projects\dcs8\ui_auto'   #获取我文件的路径
    #模糊匹配ui_auto这个目录下面需要运行的用例 feng*.py就是模糊匹配我文件中的'fengzhuang.py'
    discover=unittest.defaultTestLoader.discover(start_dir=start_dir,pattern='feng*.py')
    # print(discover)                #打印出来显示搜索哪些用例
    filename=r'C:\Projects\dcs8\ui_auto'+'\\'+'_ui_report.html'
    # print(filename)                #D:\Project\dcs8\ui_auto\_ui_report.html
    f=open(filename,'wb')          #wb是用二进制的方式写入到filename这个文件里
    runner = HTMLTestRunner(stream=f,
                            title='UI自动化测试报告',
                            description='用例执行情况如下',
                            tester='dcs8')
    runner.run(discover)           #运行模糊匹配出来的用例   打印出用例报告
    f.close()                      #关闭文件对象
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册