python+selenium assert (断言) 基本用法
时间: 2023-05-04 22:04:24 浏览: 192
在Python中使用Selenium进行浏览器自动化测试时,判断是否正确实现某些操作及输出结果时,要用到断言(assert)功能,断言即为简单的布尔语句,用于在运行时测试条件是否为真,如果不为真,则抛出异常AssertionError。
在Selenium中使用断言的语法格式为:
assert expected result == actual result, “Error message”
其中,expected result为预期结果,actual result为实际结果,如果预期结果等于实际结果,则断言通过,否则会抛出AssertionError异常,并输出“Error message”作为错误信息提示。
例如,要验证页面标题是否与预期标题相符,可以使用以下代码:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
expected_title = "百度一下,你就知道"
actual_title = browser.title
assert expected_title == actual_title, "页面标题不符"
如果页面标题与预期标题相同,则代码运行正常,如果不同则会报错显示“页面标题不符”。
相关问题
UI自动化之基本框架搭建(python + selenium + unittest)
好的,下面是基于 Python、Selenium 和 unittest 的 UI 自动化测试框架搭建步骤:
1. 安装 Python 和 Selenium
在开始前,需要确保你的电脑上安装了 Python 和 Selenium。你可以在 Python 官网下载 Python 并安装,安装完成后,在命令行中输入以下命令安装 Selenium:
```
pip install selenium
```
2. 创建一个测试项目
在你的工作目录中创建一个文件夹来存放你的测试项目,例如 `MyTestProject`。
3. 创建测试用例
在项目文件夹中创建一个文件来存放测试用例,例如 `test_example.py`,并在该文件中写入以下测试用例:
```python
import unittest
from selenium import webdriver
class ExampleTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
def tearDown(self):
self.driver.quit()
def test_example(self):
self.driver.get("https://www.example.com")
self.assertIn("Example Domain", self.driver.title)
if __name__ == '__main__':
unittest.main()
```
这个测试用例会打开 Example Domain 网站,并检查页面标题是否包含 "Example Domain"。
4. 运行测试用例
在命令行中进入项目文件夹,并执行以下命令来运行测试用例:
```
python test_example.py
```
如果一切顺利,你将会看到测试用例执行成功的结果。
5. 扩展测试用例
你可以根据需要扩展测试用例,例如添加更多的测试步骤、使用断言来检查页面元素、使用数据驱动来进行多组数据的测试等等。
以上就是一个基于 Python、Selenium 和 unittest 的 UI 自动化测试框架搭建的基本步骤,你可以在此基础上进行进一步的优化和扩展。
用代码编写Python + selenium 自动化测试平台
要用代码编写Python + selenium自动化测试平台,涉及到的技术和步骤比较多,需要一定的开发经验和技能。以下是一个简单的Python + Flask自动化测试平台示例,供您参考:
1. 安装Python和Flask模块;
2. 安装浏览器驱动程序,如ChromeDriver或GeckoDriver;
3. 创建一个Flask应用,并设置路由;
4. 在路由中编写测试函数,包括打开网页、填写表单、点击按钮等操作,并使用断言来验证测试结果;
5. 在路由中渲染HTML模板,以展示测试结果;
6. 运行Flask应用,访问测试平台。
以下是一个简单的示例代码,演示如何使用Python和Flask搭建自动化测试平台:
```python
# 导入selenium模块
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 导入Flask模块
from flask import Flask, request, render_template
# 设置Chrome浏览器驱动路径
driver_path = '/path/to/chromedriver' # 根据自己的实际路径修改
# 创建一个Flask应用
app = Flask(__name__)
# 定义测试路由
@app.route('/test', methods=['GET', 'POST'])
def test():
if request.method == 'POST':
# 获取表单数据
url = request.form['url']
keyword = request.form['keyword']
# 创建一个Chrome浏览器对象
browser = webdriver.Chrome(executable_path=driver_path)
# 打开网页
browser.get(url)
# 查找搜索框元素,并输入搜索内容
search_box = browser.find_element_by_name('q')
search_box.send_keys(keyword)
search_box.send_keys(Keys.RETURN)
# 等待搜索结果加载完成
browser.implicitly_wait(10)
# 断言搜索结果是否包含关键字
assert keyword in browser.page_source
# 关闭浏览器
browser.quit()
# 渲染HTML模板,展示测试结果
return render_template('result.html', url=url, keyword=keyword)
# 如果是GET请求,返回测试页面
return render_template('test.html')
# 运行Flask应用
if __name__ == '__main__':
app.run(debug=True)
```
这段代码创建了一个Flask应用,定义了一个名为“/test”的路由。在该路由中,如果是GET请求,会渲染一个名为“test.html”的HTML模板,展示测试表单。如果是POST请求,会获取表单数据,打开指定网页,搜索指定关键字,并断言搜索结果。最后,会根据测试结果渲染一个名为“result.html”的HTML模板,展示测试结果。
要运行这个自动化测试平台,您需要在终端中进入代码所在的目录,执行以下命令:
```
export FLASK_APP=test_platform.py
flask run
```
其中,“test_platform.py”是代码文件名。执行该命令后,Flask会启动应用,并监听localhost:5000端口。您可以在浏览器中访问该地址,即可进入测试平台。
阅读全文