Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2761字,纯文字阅读大概需要4分钟。
内容图文
![Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构](/upload/InfoBanner/zyjiaocheng/832/5c0c8de052d146b0a9c63139ff358835.jpg)
先介绍下整体框架的结构,后面再详细介绍对应每个模块的
1、Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用
------login_business.py
from Page_Object.Common_Page.login_page import Login_Page
from HTMLReport import logger
import time
def login(driver, username, password):
"""
登录业务
:param driver:浏览器驱动
:param username:用户名
:param password:密码
:return:None
"""
logger().info(f"使用用户名:{username},密码:{password}进行登陆")
login_page = Login_Page(driver)
login_page.send_username(username)
login_page.send_password(password)
login_page.submit()
time.sleep(2)
----Base_url.py:对应的url地址
2、Common:与业务无关的公共模块,如对Selenium的二次封装,方便后期的调用,还有一些工具类,如在读取数据时需要对读取文件进行封装
3、PageOBject:这个就应该不用多说了,页面元素的封装,这个根据自己公司系统的业务去做分层封装(不做过多解释)
4、report:测试报告
5、TestCase:测试用例层,下面以logincase为例子
---logincase.py
import unittest
from Business.Base_url import url_index
import ddt
from Common.tools.read_txt import read_txt
from HTMLReport import logger
from Page_Object.Common_Page.index_page import Index_Page
from Common.selenium_library import SeleniumBase
from Business.login_business import login
@ddt.ddt
class Test_login(unittest.TestCase):
def setUp(self):
self.driver = SeleniumBase().get_web_driver()
def tearDown(self):
SeleniumBase(self.driver).quit()
@ddt.unpack
@ddt.data(*read_txt('TestData/login_user_password.txt'))
def test_login(self, username, password, assert_type):
se = SeleniumBase(self.driver)
se.get(url_index)
login(self.driver, username, password)
se.add_page_screen_shot()
if assert_type == '1':
logger().info("断言登陆成功")
text = Index_Page(self.driver).login_success()
self.assertIn("测试", text, '登陆成功断言')
elif assert_type == "2":
text = self.driver.find_element_by_id("submit").text
self.assertIn("立即登录", text, '登陆失败断言')
elif assert_type == "3":
text = self.driver.find_element_by_id("submit").text
self.assertIn("立即登录", text, '登陆失败断言')
elif assert_type == "4":
text = self.driver.find_element_by_id("submit").text
self.assertIn("立即登录", text, '登陆失败断言')
else:
logger().info(f"未知断言类型{assert_type}")
self.assertTrue(False, "未知断言类型")
6、TestData:测试数据,对应用例的数据都是在这里去取
7、TestSuite:测试套件,以登录套件为例
---loginsuite.py
import unittest
from TestCase.LoginCase import login_case
def return_suite():
suite=unittest.TestSuite()
loader=unittest.TestLoader()
suite.addTests(loader.loadTestsFromTestCase(login_case.Test_login))
return suite
8、browser.ini:浏览器配置文件
[local]
local_browser = False
wait_time = 10
[browser]
name = chrome
;name = firefox
;name = ie
window_width =
window_height =
[grid]
command_executor = http://127.0.0.1:4444/wd/hub
headless = False
proxy =
9、run.py:整体运行文件
内容总结
以上是互联网集市为您收集整理的Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构全部内容,希望文章能够帮你解决Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。