起源
这是一场意外
话说笔者某天闲着没事,也正巧刚啃完 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
网友评论