颜值爆表的 UI 测试报告 - ptest

作者: 泰斯特_ | 来源:发表于2019-10-12 01:18 被阅读0次

    起源

    这是一场意外

    话说笔者某天闲着没事,也正巧刚啃完 Python & Selenium ,于是漫无目的地在网上搜索着技术相关文章。搜着搜着搜到了一个开源的报告生成库,这时,一幅精美的报告映入了我的眼帘...

    初识 ptest

    精美报告在此:

    image

    当我看到这个报告的一瞬间,心中小鹿乱撞,没想到从没经历过的一见钟情 ( 脸 ) 竟会发生在我身上。

    image

    零距离接触

    于是乎内心火热的我找到了此项目的开源地址,进行了一次零距离的接触......

    安装

    依然是万年不变的 pip install 大法:

    pip install ptest==1.9.5
    

    最佳实践

    这里我使用了自己开发的 violent-webdriver 库进行 selenium 二次封装,所以需要再来一次 pip install 大法:

    pip install violent-webdriver==1.0.27
    

    然后我们可以开始撸代码拉~

    首先我们新建一个 Python 文件,名为 uitest.py,并写入下列 核心代码~

    核心代码

    from ptest.decorator import TestClass, Test, BeforeClass, AfterClass
    from ptest.assertion import assert_true
    from ptest.plogger import preporter
    # from selenium.webdriver.chrome.options import Options
    from violent_webdriver import Chrome
    
    # chrome驱动地址,请自行修改
    CHROMEDRIVER_PATH = 'C://MyDownloads/Download/chrome-win32/chromedriver.exe'
    
    # 还是按照惯例拿百度开测
    TEST_URL = 'https://www.baidu.com'
    
    @TestClass(run_mode="singleline")
    class BaiduTest:
    
        # 初始化Chrome
        @BeforeClass(description='启动浏览器')
        def before(self):
            self.driver = Chrome.violent_chromedriver(CHROMEDRIVER_PATH)
            self.driver.set_window_size(1920, 1080)
            self.driver.implicitly_wait(10)
        
        # 测试执行
        @Test(tags=["regression", "smoke"], timeout=60, description="验证百度首页的title中是否包含「百度一下」字符串")
        def BaiduTest_001(self):
            self.driver.get(TEST_URL)
            title_text = self.driver.title
            preporter.info('已进入百度首页并获取页面title,title值为: 「%s」' % title_text, screenshot=True)
            assert_true('百度一下' in title_text)
    
        # 关闭资源
        @AfterClass(timeout=10, description='关闭浏览器')
        def after(self):
            self.driver.quit()
    

    代码讲解

    没错,我们还是拿百度做实验 :) , 代码执行过程非常简单:

    • 初始化浏览器
    • 登录百度首页
    • 获取百度首页标题
    • 校验百度首页标题是否为 百度一下
    • 关闭浏览器

    再介绍一下 ptest 框架中独有的装饰器~

    • @TestClass 代表测试类
    • @BeforeClass 代表在执行测试类中用例的前置步骤 ( 如:初始化浏览器等...... )
    • @Test 代表一个测试用例的具体执行过程 ( 如:访问测试地址、获取页面标题、断言等......)
    • @AfterClass 则常用于测试类运行完毕后的清理工作 ( 如:关闭浏览器等...... )

    运行效果

    代码撸完后在当前目录下直接运行:

    ptest3 -t uitest
    

    代码运行完毕后将在当前目录下生成测试报告,打开后如下所示:

    image image

    嗯,没错,是我喜欢的模样。

    总结

    一个好看的报告将会带来一天的好心情~

    希望大家能从本篇文章有所收获~

    最后给大家推荐一下我的公众号 「智能测试开发」,欢迎大家扫描下方海报二维码领取 进阶教程~

    image image

    相关文章

      网友评论

        本文标题:颜值爆表的 UI 测试报告 - ptest

        本文链接:https://www.haomeiwen.com/subject/msefmctx.html