项目名称 | 博客系统 | 版本号 | / |
发布类型 | 分级发布 | 测试负责人 | 佘娟妹 |
测试完成日期 | 2024.10.16 | 联系方式 | 15975219235 |
评审人 | 佘娟妹、张三、李四王老五、林冲、郭涛 | 批准人 | 李四 |
评审日期 | 2024.10.17 | 批准日期 | 2024.10.17 |
一、项目背景
该项目是一款用于用户发布博客和查看博客的系统,为了方便用户使用,对该系统做了界面测试。
1、测试目标及测试任务概括
2、被测的系统、代码包及其文档等信息
接口:webService接口
测试代码:Cplusplus: 成长仓库
3、产品需求和设计文档等
《需求文档》、《技术文档》、《设计图》
二、项目安排
模块 | 子模块 | 前端 | 开发 | 提测时间 | 测试 | 工时 | 排期 | 进度 | 备注 |
登录 | 登录功能 | 李六 | 林一 | 10.14 | 佘娟妹 | 0.5d | 10.16 | 测试完成 | |
主页 | 博主信息、博客列表页、导航栏 | 王五 | 王付 | 10.15 | 佘娟妹 | 0.5d | 10.16 | 测试完成 | |
博客详情页 | 博客详情页 | 三三 | 刘涛 | 10.16 | 佘娟妹 | 0.5d | 10.16 | 测试完成 | |
写博客 | 博客编辑与发布 | 西西 | 林夕 | 10.16 | 佘娟妹 | 0.5d | 10.16 | 测试完成 |
三、测试分类
- 功能测试
- 编写手工测试用例
设计测试用例方法主要从功能测试、界面测试、性能测试、兼容性测试、易用性测试、弱网测试等七个方面进行设计,但个人博客的测试主要就是针对核心功能进行测试脑图展开
- 实际执行用例:
- 登录页面测试
输入网址后获取到登录页面,界面显示登录框。
先执行登录失败,输入的用户名和密码至少有一个出错,则登录不成功,跳出确定弹窗。
点击确认即可再次登录。之后输入正确的用户名和密码,登录成功后就会跳转到博客列表页面。
- 博客首页
在博客首页下可以看到发布成功的博客标题和发布时间以及发布内容,当点击“查看全文”按钮,则可以进入该条博客详情页
- 博客详情页
获取到博客详情页网址后,可以看到用户昵称。同时也可以看到博客标题,博客发布时间和详细的博客内容。
- 博客编辑页
获取博客编辑页后,可以输入博客标题,最终点击发布博客。
功能测试结果:测试用例100%通过。
四、部分测试代码展示
1、博客登录失败页面
def LoginFailTest(self): #若连续多次send_keys,则需要先清空输入框,否则会出现关键词的拼接 self.driver.find_element(By.CSS_SELECTOR,"#username").clear() self.driver.find_element(By.CSS_SELECTOR, "#password").clear() self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("zhangsan") self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("12345") self.driver.find_element(By.CSS_SELECTOR,"#submit").click() time.sleep(1) #测试是否出现弹窗 self.driver.switch_to.alert.accept() time.sleep(1) # self.driver.switchTo.alert.accept() self.driver.find_element(By.CSS_SELECTOR,"#username").clear() self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("sjm") self.driver.find_element(By.CSS_SELECTOR, "#password").clear() self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456") self.driver.find_element(By.CSS_SELECTOR, "#submit").click() time.sleep(1) # 测试是否出现弹窗 self.driver.switch_to.alert.accept() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR,"#username").clear() self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("sjm") self.driver.find_element(By.CSS_SELECTOR, "#password").clear() self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("12345") self.driver.find_element(By.CSS_SELECTOR,"#submit").click() time.sleep(1) # 测试是否出现弹窗 # self.driver.switch_to.alert.accept() self.driver.switch_to.alert.accept() time.sleep(1)
2、博客编辑页面
from selenium.webdriver.common.by import By from common.Unit import BlogDriver #测试博客编辑页 class BlogEdit: url="" driver="" def __init__(self): self.url="http://8.137.19.140:9090/blog_edit.html" self.driver=BlogDriver.driver self.driver.get(self.url) #登录界面下的编辑页 def EditByLogin(self): #页面元素检查 self.driver.find_element(By.CSS_SELECTOR,"#title").send_keys("今天是晴天") #由于内容输入框不可交互,同时给又因为其默认是有内容的只需要点击发布即可 BlogDriver.getScreeShot() 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(2780) > div.title").text
五、bug评估
一共发现3个bug,严重级别的bug一共2个,次要级别的bug共有一个。
bug描述:
在本次测试中发现,博客编辑内容输入框不可交互,所有无法通过选择器去获取相关内容,这时内容输入框默认是有内容的,则只需要点击发布即可。
六、遗留风险
测试时间紧张,先保证博客系统主功能没有问题,可能存在细节测试不到位等风险。
七、测试结果评估
- 目前的测试工作基本达到了预定目标,即完成除原有的系统功能外的所有功能及模块功能的功能测试,测试任务已全面完成。
- 主功能测试通过,项目可以上线。