博客系统自动化测试

测试用例设计

测试项目链接:(用户名:lisi,密码:123)
在这里插入图片描述

自动化测试

1.登录功能

登录功能测试采用ddt数据驱动,测试数据如下:

[“zhangsan”, “123”, u"博客列表"],
[“lisi”, “123”, u"博客列表"],
[“zhangsan”, “12”, u"博客列表"],
[“zhang”, “123”, u"博客列表"],
[“zhangsan”, “”, u"博客列表"],
[“”, “”, u"博客列表"]

其中数据1、2为有效数据,3、4、5、6位无效数据。

测试脚本如下:

from ddt import data, ddt, unpack, file_data
from selenium import webdriver
import unittest
import time
import os


@ddt
class Login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.url = "http://43.138.70.241:8080/blog/blog_login.html"
        self.driver.maximize_window()
        self.verificationErrors = []
        self.accept_next_alert = True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

    @data(["zhangsan", "123", u"博客列表"], ["zhangsan", "123", u"博客列表"],
          ["zhangsan", "12", u"博客列表"], ["zhang", "123", u"博客列表"],
          ["zhangsan", "", u"博客列表"], ["", "", u"博客列表"])
    @unpack
    def test_logins(self, username, password, expected_value):
        driver = self.driver
        url = self.url
        driver.get(url)
        time.sleep(2)
        driver.find_element_by_id("username").send_keys(username)
        driver.find_element_by_id("password").send_keys(password)
        driver.find_element_by_id("submit").click()
        time.sleep(2)
        self.assertEqual(expected_value, driver.title, msg="登陆失败")
        time.sleep(2)
        driver.find_element_by_css_selector(".nav > a:nth-child(6)").click()
        time.sleep(2)

HTML报告:
在这里插入图片描述

2.显示博客

测试脚本如下:

class Login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.url = "http://43.138.70.241:8080/blog/blog_login.html"
        self.driver.maximize_window()
        self.verificationErrors = []
        self.accept_next_alert = True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

    def test_shows(self):
        driver = self.driver
        url = self.url
        driver.get(url)
        time.sleep(2)
        driver.find_element_by_id("username").send_keys("lisi")
        driver.find_element_by_id("password").send_keys("123")
        driver.find_element_by_id("submit").click()
        time.sleep(2)
        driver.find_element_by_css_selector("div.blog:nth-child(1) > a:nth-child(4)").click()
        time.sleep(2)
        self.assertEqual("博客详情页", driver.title, msg="点击查看博客跳转失败")
        time.sleep(2)

3.写博客和删除博客

测试脚本如下:

    def test_write(self):
        driver = self.driver
        url = self.url
        driver.get(url)
        time.sleep(2)
        driver.find_element_by_id("username").send_keys("lisi")
        driver.find_element_by_id("password").send_keys("123")
        driver.find_element_by_id("submit").click()
        time.sleep(2)
        driver.find_element_by_css_selector(".nav > a:nth-child(5)").click()
        driver.find_element_by_id("title").send_keys("自动化测试")
        time.sleep(2)
        driver.find_element_by_css_selector(".CodeMirror > div:nth-child(1) > textarea:nth-child(1)").send_keys(Keys.CONTROL,'a')
        time.sleep(1)
        driver.find_element_by_css_selector(".CodeMirror > div:nth-child(1) > textarea:nth-child(1)").send_keys(Keys.CONTROL,'x')
        time.sleep(1)
        driver.find_element_by_css_selector(".CodeMirror > div:nth-child(1) > textarea:nth-child(1)").send_keys("这是使用自动化测试生成的博客")
        time.sleep(2)
        driver.find_element_by_id("submit").click()
        self.assertEqual("博客列表", driver.title, msg="点击发布博客跳转失败")
        time.sleep(2)
        driver.find_element_by_css_selector("div.blog:nth-child(1) > a:nth-child(4)").click()
        time.sleep(2)
        self.assertEqual("博客详情页", driver.title, msg="点击查看博客跳转失败")
        time.sleep(2)
        driver.find_element_by_css_selector(".nav > a:nth-child(7)").click()
        self.assertEqual("博客列表", driver.title, msg="点击删除博客跳转失败")
        time.sleep(2)

4.注销

测试脚本如下:

    def test_logout(self):
        driver = self.driver
        url = self.url
        driver.get(url)
        time.sleep(2)
        driver.find_element_by_id("username").send_keys("lisi")
        driver.find_element_by_id("password").send_keys("123")
        driver.find_element_by_id("submit").click()
        time.sleep(2)
        driver.find_element_by_css_selector(".nav > a:nth-child(6)").click()
        self.assertEqual("登录页面", driver.title, msg="点击注销跳转失败")
        time.sleep(2)

5.测试套件

以下是测试套件:

def createsuite():
    discover = unittest.defaultTestLoader.discover('./test', pattern='test*.py', top_level_dir=None)
    print(discover)
    return discover


if __name__ == "__main__":
    curpath = sys.path[0]
    print(sys.path)
    print(sys.path[0])

    if not os.path.exists(curpath + '/result_report'):
        os.makedirs(curpath + '/result_report')

    now = time.strftime("%Y-%m-%d-%H %M %S", time.localtime(time.time()))

    filename = curpath + '/result_report/' + now + 'result_report.html'
    with open(filename, 'wb') as fp:
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告',
                                               description=u'用例执行情况', verbosity=2)
        suite = createsuite()
        runner.run(suite)

6.生成报告

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值