IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python+Selenium+Unittest+HTMLTestRunner线性自动化框架实战详细教程 -> 正文阅读

[Python知识库]Python+Selenium+Unittest+HTMLTestRunner线性自动化框架实战详细教程

大部分公司项目管理工具都为禅道,此篇以禅道登录进行举例

一、创建包和目录

1、common:存放公共方法,如测试执行前的操作(打开浏览器)、测试执行后的操作(关闭浏览器)、登录等

2、config:一般用于存放ini配置文件

3、report:用于存放HTML测试报告

4、test_cases:测试用例目录

5、run_all.py:用于执行所有测试用例的文件

?二、各目录的编写方法

1、首先编写单独的测试用例,确定单独模块可执行成功

定位识别语法可参考作者主页历史文章:https://blog.csdn.net/healerlx/category_11438512.html?spm=1001.2014.3001.5482

import unittest
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

class test_Login(unittest.TestCase):

    def setUp(self) -> None:#测试前要执行的内容
        self.driver = webdriver.Chrome() #打开浏览器
        self.driver.implicitly_wait(10) #隐式等待10S
        self.driver.maximize_window() #窗口最大化
        self.driver.get('禅道URL')#禅道地址

    def tearDown(self) -> None:#测试后要执行的内容
        time.sleep(3)
        self.driver.quit()#退出览器

    def test_login_succes(self):
        self.driver.find_element(By.ID,'account').send_keys('XXX') #禅道登录用户名
        self.driver.find_element(By.NAME,'password').send_keys('XXX')#禅道登录密码
        self.driver.find_element(By.CLASS_NAME,'btn.btn-primary').click()#点击登录按钮

if __name__ == '__main__':
    unittest.main()

?2、执行某个目录下的测试用例(当test_case中有多个文件夹或模块时,执行该文件夹下的所有用例)

详细写法可参考文章Python+Unittest - discover()构建不同目录下的用例_HealerLX的博客-CSDN博客

import os
import unittest

current_path = os.path.dirname(__file__)  # 获取当前目录
cases_path = os.path.join(current_path, 'test_cases')  # 拼接文件路径

#执行以下路径的所有测试用例
discover = unittest.defaultTestLoader.discover(start_dir=cases_path, pattern='test_*.py', top_level_dir=cases_path)

if __name__ == '__main__':
    main_suite = unittest.TestSuite()  # 创建测试套件对象
    main_suite.addTest(discover)  # 执行discover对象中的所有文件
    unittest.main(defaultTest='main_suite')



3、引用HTMLTestRunner将执行结果以网页测试报告形式展示,html文件写入指定目录中

import os
import time
import unittest
import HTMLTestRunner

current_path = os.path.dirname(__file__)
report_path = os.path.join(current_path,'report')
cases_path = os.path.join(current_path,'test_cases')
#测试报告命名以年月日时分秒的格式
html_path = os.path.join(report_path,'report_%s.html'%time.strftime('%Y_%m_%d_%H_%M_%S'))

discover = unittest.defaultTestLoader.discover(start_dir=cases_path,pattern='test_*.py',top_level_dir=cases_path)

main_suite = unittest.TestSuite()
main_suite.addTest(discover)


with open(html_path,'w',encoding='UTF-8') as file:
    html_runner = HTMLTestRunner.HTMLTestRunner(stream=file,title='禅道UI自动化测试项目',description='丸子编码')
    html_runner.run(main_suite)

?4、将公共方法写入common文件夹,测试用例模块直接引用,再执行run_all.py文件即可

from selenium import webdriver

def set_driver():
        driver = webdriver.Chrome()
        driver.implicitly_wait(10)
        driver.get('浏览器URL')
        driver.maximize_window()
        return driver

??

import unittest
import time
from common import set_driver
from selenium.webdriver.common.by import By

class test_Login(unittest.TestCase):

    def setUp(self) -> None:
        self.driver = set_driver.set_driver()

    def tearDown(self) -> None:
        time.sleep(3)
        self.driver.quit()

    def test_login_succes(self):
        self.driver.find_element(By.ID,'account').send_keys('test01')
        self.driver.find_element(By.NAME,'password').send_keys('newdream123')
        self.driver.find_element(By.CLASS_NAME,'btn.btn-primary').click()

if __name__ == '__main__':
    unittest.main()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 15:53:53  更:2021-12-14 15:54:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:45:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码