【软件测试】自动化测试实战篇 -- 详解
以博客系统为例,基于 Web 项目进行完整的自动化实战。
一、自动化实施步骤
1、编写 Web 测试用例
2、自动化测试脚本开发
(1)用例需要用到的配置(common)
A. Utils.py
import datetime
import os.path
import sys
# 创建一个浏览器对象
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager
class Driver:
driver = ""
def __init__(self):
options = webdriver.EdgeOptions()
self.driver = webdriver.Edge(service = Service(EdgeChromiumDriverManager().install()), options=options)
self.driver.implicitly_wait(2)
def getScreeShot(self):
# 创建屏幕截图
# 图片文件名称:./2024-07-19-134936.png
dirname = datetime.datetime.now().strftime("%Y-%m-%d")
# 判断dirname文件夹是否已经存在,若不存在则创建文件夹
# ../images/2024-07-19
if not os.path.exists("../images/" + dirname): # ../images/2024-07-19
os.mkdir("../images/" + dirname)
# 2024-07-19-134936.png
# 图片路径:./images/调用方法-2024-07-19/2024-07-19-134936.png
# 图片路径:./images/LoginSucTest-2024-07-19/2024-07-19-134936.png
# 图片路径:./images/LoginFailTest-2024-07-19/2024-07-19-134936.png
filename = sys._getframe().f_back.f_code.co_name + "-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
self.driver.save_screenshot("../images/" + dirname + "/" + filename)
BlogDriver = Driver()
(2)存放测试用例文件(test)
A. BlogLogin.py(博客登录页相关测试用例)
B. BlogList.py(博客首页相关测试用例)
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
# 博客首页测试用例
class BlogList:
url = ""
driver = ""
def __init__(self):
self.url = "http://8.137.19.140:9090/blog_login.html"
self.driver = BlogDriver.driver
self.driver.get(self.url)
# 测试首页(登录情况下)
def ListTestByLogin(self):
# 测试博客标题是否存在
self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(1) > div.title")
# 测试按钮是否存在
self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(1) > div.desc")
# 测试博客内容是否存在
self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(1) > a")
# 个人信息-检查昵称是否存在
self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.left > div > h3")
# 添加屏幕截图
BlogDriver.getScreeShot()
# 测试首页(未登录情况下)
C. RunTest.py
D. BlogDetail.py(博客详情页相关测试用例)
E. BlogEdit.py(博客编辑页相关测试用例)
import time
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
# 测试博客编辑页面
class BlogEdit:
url = ""
driver = ""
def __init__(self):
self.url = "http://8.137.19.140:9090/blog_login.html"
self.driver = BlogDriver.driver
self.driver.get(self.url)
# 正确发布博客(登陆状态下)
def EditSucTestByLogin(self):
self.driver.find_element(By.CSS_SELECTOR, "#title").send_keys("自动化测试创建")
# 找到编辑区,输入关键词(编辑区域不可操作)
# 通过点击菜单栏达到编辑区域不为空的目的
# 博客系统编辑区域默认情况下就不为空,可以暂不处理
# 直接点击发布按钮来发布博客
self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
# 点击完成之后出现页面跳转,页面跳转需要加载时间,可能会出现代码执行的速度比页面渲染的速度更快,导致元素查找不到,因此可以添加等待
# 可以添加隐式等待/显示等待
# 隐式等待:创建浏览器对象之后就可以加上,因为隐式等待的作用域在driver整个生命周期
# 显示等待:可以作用在当前代码中
actual = self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.right > div:nth-child(1) > div.title").text
assert actual == "自动化测试创建"
# 屏幕截图
BlogDriver.getScreeShot()
3、将自动化测试补充支测试报告
一般在执行完项目测试之后进行编写的测试报告文档。
测试报告并没有一个统一的写法,不同的企业、不同的测试部门要求的格式也不完全一样。但是测试报告整体来说还是有一个基本内容的,整体上来说差别不大。
在哪一个阶段出具测试报告呢?
当执行完项目测试之后,认为项目已经测试完成了就可以编写测试报告。
(1)测试报告模板
(2)测试报告主要内容
测试了哪些主要功能,测试覆盖面是多少,测试结论。
A. 项目背景
为什么要做这个项目(存在的意义是什么,解决了什么问题)
B. 项目简介
项目有哪些功能,每个功能分别怎样使用
C. 测试计划
D. 测试工具
比如:postman。
E. 设计到的测试动作 / 类型
功能测试、性能测试、自动化测试
- 功能测试:覆盖了哪些功能,发现了多少个问题
- 性能测试:覆盖了哪些页面 / 接口,发现了多少个问题
- 自动化测试:覆盖了哪些页面
F. 功能测试
G. 自动化测试
- 自动化测试用例
- 自动化测试脚本
H. 项目测试 Bug 简述
I. 测试结论
J. 代码链接
K. 针对项目采用的框架 / 技术
原文地址:https://blog.csdn.net/weixin_74531333/article/details/140414627
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!