当前位置: 首页 > news >正文

温州网站推广模板科技大崛起

温州网站推广模板,科技大崛起,网站建设添加汉语,单位加强网站建设博客系统UI自动化测试报告一、项目背景二、测试内容(一)测试用例(二)测试账号(三#xff09;使用Selenium进行Web自动化测试1.环境搭建2.创建浏览器驱动3.编写博客登陆模块的测试用例代码4.编写博客主页展示模块的测试用例代码5.编写博客创作模块的测试用例代码6.编写博客查看… 博客系统UI自动化测试报告一、项目背景二、测试内容(一)测试用例(二)测试账号(三使用Selenium进行Web自动化测试1.环境搭建2.创建浏览器驱动3.编写博客登陆模块的测试用例代码4.编写博客主页展示模块的测试用例代码5.编写博客创作模块的测试用例代码6.编写博客查看模块的测试用例代码7.编写博客删除模块的测试用例代码8.编写博客退出模块的测试用例代码9.编写测试截图功能10.整合代码进行系统测试(三)自动化测试总结1.自动化测试覆盖模块2.自动化测试用例数量3. 自动化测试代码展示4.自动化测试部分截图5. 自动化测试结果6. 测试评估7. 遗留问题总结一、项目背景 本次博客系统UI自动化测试所用博客系统是基于SSM框架实现的个人博客系统由博客登陆页、博客主页页、博客创作页、博客详情页所组成。成功登录博客即可查看自己已发布的博客也可以进行发布博客操作通过使用Selenium定位web元素、对获取到的元素进行操作等对个人博客系统进行测试测试的核心内容包括博客登录、博客主页展示、博客创作、博客修改、博客查看、博客删除、博客退出等。同时该博客系统还可以实现记录博客发布日期、时间等信息。 二、测试内容 注测试的内容都是个人完成的所以就不写需求文档和测试安排了。 (一)测试用例 设计测试用例方法一般从以下几个方面设计 功能测试、界面测试、性能测试、易用性测试、安全性测试、兼容性测试等六个方面进行设计但是个人博客系统是一个web网站主要是针对核心功能、界面测试、安全性测试、兼容性测试进行测试编写的测试用例如下 其中安全性测试和界面测试需要人工测试就不过多涉及了 本报告主要对功能模块进行自动化测试。 (二)测试账号 账号用户名密码账号1zhangsan123456账号2lisi123456 (三使用Selenium进行Web自动化测试 1.环境搭建 安装与浏览器名称和版本对应的webdrivermanager。 本次测试使用的驱动版本如下 驱动版本Edge浏览器138.0.3351.121 (正式版本) (64 位)selenium4.0.0webdriver-manager4.0.22.创建浏览器驱动 创建一个驱动类自定义名为Edge_Driver通过在Edge_Driver中创建一个统一驱动对象对博客登录、博客主页展示、博客创作、博客修改、博客查看、博客删除、博客退出等功能分别进行测试操作。 from selenium import webdriver from selenium.webdriver.edge.service import Service from selenium.webdriver.edge.options import Optionsclass Edge_Driver:driverdef __init__(self):# EdgeDriver 路径edge_driver_path rC:\Program Files (x86)\Microsoft\Edge\WebDriver\edgedriver_win64\msedgedriver.exeserviceService(edge_driver_path)options Options()options.add_argument(--remote-allow-origins*)self.driverwebdriver.Edge(serviceservice,optionsoptions)self.driver.implicitly_wait(2)注根据所要测试的功能可创建不同的测试类 3.编写博客登陆模块的测试用例代码 (1)创建一个博客登陆测试类自定义名为BlogLand继承Edge_Driver类得到驱动driver (2)根据博客登陆模块测试用例创建不同的方法 land.LandFailTest1()#输入错误的账号和错误的密码land.LandFailTest2()#输入错误的账号和正确的密码land.LandFailTest3()#输入正确的账号和错误的密码land.LandFailTest4()#输入非常规账号和密码land.LandFailTest5()#仅输入账号land.LandFailTest6()#仅输入密码land.LandFailTest7()#不做输入land.LandTest()#输入正确的账号和密码 import time from selenium.webdriver.common.by import By from selenium.webdriver.support.expected_conditions import alert_is_present from common.webdriver import BlogDriver class BlogLand:urldriverdef __init__(self):self.url http://8.137.19.140:9090/blog_login.htmlself.driver BlogDriver.driver#登陆成功def LandTest1(self):self.driver.get(self.url)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(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()BlogDriver.GetImage()textself.driver.find_element(By.CSS_SELECTOR,body div.container div.left div h3).textassert textzhangsanself.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(6)).click()def LandTest2(self):self.driver.get(self.url)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(lisi)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR, #submit).click()BlogDriver.GetImage()text self.driver.find_element(By.CSS_SELECTOR, body div.container div.left div h3).textassert text lisiself.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(6)).click()#输入错误的账号和错误的密码def LandFailTest1(self):self.driver.get(self.url)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(zhannsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123457)self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text用户不存在alert.accept()BlogDriver.GetImage()#输入错误的账号和正确的密码def LandFailTest2(self):self.driver.get(self.url)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(zhanasan)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text用户不存在alert.accept()BlogDriver.GetImage()#输入正确的账号和错误的密码def LandFailTest3(self):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(122456)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text密码错误alert.accept()BlogDriver.GetImage()#输入非常规账号和密码def LandFailTest4(self):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($:zda85545?~)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys($:zda85545?~)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text用户不存在alert.accept()BlogDriver.GetImage()#仅输入账号def LandFailTest5(self):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, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text账号或密码不能为空alert.accept()BlogDriver.GetImage()#仅输入密码def LandFailTest6(self):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, #password).send_keys(123456)self.driver.implicitly_wait(2)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text账号或密码不能为空alert.accept()BlogDriver.GetImage()#不做输入def LandFailTest7(self):self.driver.find_element(By.CSS_SELECTOR, #username).clear()self.driver.find_element(By.CSS_SELECTOR, #password).clear()self.driver.implicitly_wait(2)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text账号或密码不能为空alert.accept()BlogDriver.GetImage()land BlogLand()(3)单独对该模块进行自动化测试 4.编写博客主页展示模块的测试用例代码 (1)创建一个博客主页展示类自定义名为BlogShow继承Edge_Driver类得到驱动driver (2)根据博客主页展示模块测试用例创建不同的方法 LandShow()#登陆状态下主页展示LandFailShow()#未登录状态主页展示import time from selenium.webdriver.common.by import By from common.webdriver import BlogDriverclass BlogShow:url driverdef __init__(self):self.url http://8.137.19.140:9090/blog_login.htmlself.driverBlogDriver.driverself.driver.get(self.url)#登陆状态下主页展示def LandShow(self):self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()BlogDriver.GetImage()textself.driver.find_element(By.CSS_SELECTOR,body div.container div.left div h3).textassert textzhangsantextself.driver.find_element(By.CSS_SELECTOR,body div.nav span).textassert text 我的博客系统textself.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(6)).textassert text 注销textself.driver.find_element(By.CSS_SELECTOR,body div.container div.left div div:nth-child(4) span:nth-child(1)).textassert text 文章textself.driver.find_element(By.CSS_SELECTOR,body div.container div.left div div:nth-child(4) span:nth-child(2)).textassert text 分类#未登录状态主页展示def LandFailShow(self):self.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(6)).click()BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(4)).click()time.sleep(1)self.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(5)).click()time.sleep(1)BlogDriver.GetImage()# textself.driver.find_element(By.CSS_SELECTOR,#submit).text# print(text)# assert text 发布文章self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(1)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text账号或密码不能为空alert.accept()BlogDriver.GetImage()Show BlogShow() (3)单独对该模块进行自动化测试 5.编写博客创作模块的测试用例代码 (1)创建一个博客创作展示类自定义名为BlogPush继承Edge_Driver类得到驱动driver (2)根据博客创作模块测试用例创建不同的方法 BPush()#博客创作Modify()#博客修改from common.webdriver import BlogDriver import timefrom selenium.webdriver.common.by import Byclass BlogPush:driverurldef __init__(self):self.driverBlogDriver.driverself.urlhttp://8.137.19.140:9090/blog_login.html# 博客创作def BPush(self):self.driver.get(self.url)self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)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.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(5)).click()time.sleep(1)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(1)alertself.driver.switch_to.alertalert.accept()self.driver.find_element(By.CSS_SELECTOR,#title).send_keys(博客系统UI自动化测试)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(1)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(6)).click()# 博客修改def Modify(self):self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div a).click()time.sleep(1)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div div.operating button:nth-child(1)).click()BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR, #title).send_keys(123)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(1)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,body div.nav a:nth-child(6)).click()pushBlogPush()(3)单独对该模块进行自动化测试 6.编写博客查看模块的测试用例代码 (1)创建一个博客查看展示类自定义名为BlogFind继承Edge_Driver类得到驱动driver (2)根据博客查看模块测试用例创建不同的方法 #博客查看 LandFind():from common.webdriver import BlogDriver import timefrom selenium.webdriver.common.by import Byclass BlogFind:urldriverdef __init__(self):self.url http://8.137.19.140:9090/blog_login.htmlself.driverBlogDriver.driver#博客查看def LandFind(self):self.driver.get(self.url)self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()self.driver.find_element(By.CSS_SELECTOR, body div.container div.right div:nth-child(1) a).click()textself.driver.find_element(By.CSS_SELECTOR, body div.container div.right div div.title).textBlogDriver.GetImage()assert text博客系统UI自动化测试123textself.driver.find_element(By.CSS_SELECTOR, #h2-u5728u8FD9u91CCu5199u4E0Bu4E00u7BC7u535Au5BA2).textassert text在这里写下一篇博客self.driver.find_element(By.CSS_SELECTOR, body div.nav a:nth-child(6)).click()findBlogFind()(3)单独对该模块进行自动化测试 7.编写博客删除模块的测试用例代码 (1)创建一个博客删除类自定义名为BlogPop继承Edge_Driver类得到驱动driver (2)根据博客删除博客删除模块测试用例创建不同的方法 BPop()#博客删除import timefrom selenium.webdriver.common.by import Byfrom common.webdriver import BlogDriverclass BlogPop:driverurldef __init__(self):self.driverBlogDriver.driverself.urlhttp://8.137.19.140:9090/blog_login.htmldef BPop(self):self.driver.get(self.url)self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(1)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div a).click()time.sleep(1)BlogDriver.GetImage()self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div div.operating button:nth-child(2)).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text确定删除?alert.dismiss()self.driver.find_element(By.CSS_SELECTOR,body div.container div.right div div.operating button:nth-child(2)).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text确定删除?alert.accept()BlogDriver.GetImage()popBlogPop()(3)单独对该模块进行自动化测试 8.编写博客退出模块的测试用例代码 (1)创建一个博客退出类自定义名为BlogExit继承Edge_Driver类得到驱动driver (2)根据博客退出模块测试用例创建不同的方法 注博客正常退出在前几个模块不断被使用故这里只编写了不正常退出。 BExit()#博客不正常退出import timefrom selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.edge.options import Options from selenium.webdriver.edge.service import Servicefrom common.webdriver import BlogDriverclass BlogExit:driverurldef __init__(self):self.urlhttp://8.137.19.140:9090/blog_login.htmlself.driverBlogDriver.driverdef BExit(self):self.driver.get(self.url)self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()self.driver.quit()edge_driver_path rC:\Program Files (x86)\Microsoft\Edge\WebDriver\edgedriver_win64\msedgedriver.exeserviceService(edge_driver_path)options Options()options.add_argument(--remote-allow-origins*)self.driverwebdriver.Edge(serviceservice,optionsoptions)self.driver.get(self.url)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)alert self.driver.switch_to.alerttextalert.textassert text账号或密码不能为空alert.accept()self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangsan)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.find_element(By.CSS_SELECTOR, body div.nav a:nth-child(6)).click()time.sleep(1)self.driver.quit()exitBlogExit()(3)单独对该模块进行自动化测试 9.编写测试截图功能 测试截图可在自动化测试过程中进行截图操作并保存这有利于自动化测试结果的观察。 因为该截图功能可能会被反复调用故可以将其和创建驱动对象写到一起。 import datetime import os import sys from selenium import webdriver from selenium.webdriver.edge.service import Service from selenium.webdriver.edge.options import Optionsclass Edge_Driver:driverdef __init__(self):# EdgeDriver 路径edge_driver_path rC:\Program Files (x86)\Microsoft\Edge\WebDriver\edgedriver_win64\msedgedriver.exeserviceService(edge_driver_path)options Options()options.add_argument(--remote-allow-origins*)self.driverwebdriver.Edge(serviceservice,optionsoptions)self.driver.implicitly_wait(2)def GetImage(self):dirname datetime.datetime.now().strftime(%Y-%m-%d)if not os.path.exists(../images/ dirname):os.mkdir(../images/ dirname)filename sys._getframe().f_back.f_code.co_name - datetime.datetime.now().strftime(%Y-%m-%d-%H%M%S) .pngself.driver.save_screenshot(../images/ dirname / filename)BlogDriverEdge_Driver() 10.整合代码进行系统测试 将前面写的代码都放入main函数中运行。 from auto_Chrome_bolgtest import EdgeBlogLand from auto_Chrome_bolgtest import EdgeBlogShow from auto_Chrome_bolgtest import EdgeBlogFind from auto_Chrome_bolgtest import EdgeBlogPush from auto_Chrome_bolgtest import EdgeBlogPop from auto_Chrome_bolgtest import EdgeBlogExitif __name____main__:#博客登陆EdgeBlogLand.land.LandFailTest1()#输入错误的账号和错误的密码EdgeBlogLand.land.LandFailTest2()#输入错误的账号和正确的密码EdgeBlogLand.land.LandFailTest3()#输入正确的账号和错误的密码EdgeBlogLand.land.LandFailTest4()#输入非常规账号和密码EdgeBlogLand.land.LandFailTest5()#仅输入账号EdgeBlogLand.land.LandFailTest6()#仅输入密码EdgeBlogLand.land.LandFailTest7()#不做输入EdgeBlogLand.land.LandTest1()#输入正确的账号和密码EdgeBlogLand.land.LandTest2() # 输入正确的账号和密码#博客主页展示EdgeBlogShow.Show.LandShow()EdgeBlogShow.Show.LandFailShow()#博客创作EdgeBlogPush.push.BPush()EdgeBlogPush.push.Modify()#博客查看EdgeBlogFind.find.LandFind()#博客删除EdgeBlogPop.pop.BPop()#博客退出EdgeBlogExit.exit.BExit()(三)自动化测试总结 1.自动化测试覆盖模块 博客登录、博客主页展示、博客创作、博客修改、博客查看、博客删除、博客退出2.自动化测试用例数量 自动化测试用例数量33个3. 自动化测试代码展示 博客UI自动化测试代码链接 https://gitee.com/pluck-his-hair/primary-project/tree/master/auto_test 4.自动化测试部分截图 5. 自动化测试结果 项目功能用例99.999999%通过6. 测试评估 核心功能测试通过项目达到上线基本要求7. 遗留问题 问题预期结果实际结果遗留原因博客主页展示页面中文章数量跟随博客数量的变动而进行改变始终为2测试时间紧张留至下版本更新处理博客主页GitHub 地址能显示且能跳转不能显示但能跳转测试时间紧张留至下版本更新处理部分扩展功能测试抓紧实现暂未实现测试时间紧张未能涉及全模块总结 测试代码编写可能出现错误的原因 隐式等待有时会改变代码执行顺序出现报错可加入强制等待确保页面加载完成提高自动化的稳定性。
http://www.zqtcl.cn/news/688711/

相关文章:

  • 网站如何建设二级域名代理天津专业做网站
  • 相城区建设局网站如何申请公司邮箱账号
  • 中国空间站名字无锡网站优化
  • 怎么做自己淘宝优惠券网站专业的网站制作公司地址
  • php网页搜索引擎优化的核心本质
  • 在国外社交网站做产品推广wordpress自建站
  • flex 做网站色调网站
  • 金融网站模板源代码阿里巴巴网站建设哪家好
  • 成都市网站公司网站建设制作介绍河南
  • 自己如何建设网站微信开发公司哪家好
  • 混沌鸿蒙网站建设wordpress 后台添加菜单
  • 北辰正方建设集团有限公司网站云南网站开发
  • 郑州网站建设信息前端用什么软件开发
  • 动漫视频网站开发做编程的网站有哪些方面
  • 做搜狗网站优化首页软外贸代运营
  • 巴士定制网站开发宁波快速制作网站
  • 永年区住房和城乡建设局网站网站后台文档
  • 网站备案授权书wordpress教程 页面
  • 深圳网站开发制作安徽全网优化
  • 陕西建设局网站appcms程序怎么做网站
  • 石家庄城乡建设厅网站牡丹江百度推广
  • 网站建设源代码 费用事件网站推广
  • 购物网站开发文献综述潮汕网站建设
  • 做五金生意什么网站做比较好网站建设市场规模
  • 网站跟app的区别是什么网络搭建结构图
  • 淘宝网站怎么做视频教程山西推广型网站开发
  • 杭州开发网站2018主流网站建设语言
  • 杂志社网站建设方案书响应式网站服务
  • 青岛网站开发建设农村建设有限公司网站
  • 做水晶接单在哪个网站接php做购物网站怎么样