博客园项目之测试篇

一、博客园项目的测试用例

在这里插入图片描述

二、使用selenium框架对项目进行自动化测试

使用unittest单元测试框架,对项目中的登录功能进行了自动化测试。

2.1 测试登录功能

from selenium import webdriver
import unittest
import time
import os
from selenium.common.exceptions import NoAlertPresentException
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

class Testlogin(unittest.TestCase):
#     测试固件
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.url = "http://101.42.153.174:8080/myblog/login.html"
        self.driver.get(self.url)
        self.driver.maximize_window()
        time.sleep(3)

    def tearDown(self):
        self.driver.quit()

#     测试用例
#     忽略测试用例的执行
#     @unittest.skip("skipping")

    def test_login(self):
        driver = self.driver
        # 登录操作
        driver.find_element_by_id("username").send_keys("郝文雪")
        # 使用tab键将焦点定位到用户名
        driver.find_element_by_id("username").send_keys(Keys.TAB)
        driver.find_element_by_id("password").send_keys("12345678")
        # 用enter键直接登录
        driver.find_element_by_id("submit").send_keys(Keys.ENTER)
        time.sleep(6)
        alert = driver.switch_to.alert
        time.sleep(3)
        # 获取alert的文本值
        alert_content = alert.text
        alert.accept()
        try:
            self.assertEqual(alert_content, "恭喜,登录成功!", msg="登录失败")
        except:
            if not os.path.exists("./image"):
                os.makedirs("./image")
            now = time.strftime("%Y%m%d-%H%M%S", time.localtime(time.time()))
            driver.get_screenshot_as_file('./image/' + now + '-' + 'error.png')

    def test_zhuye(self):
            driver = self.driver
            url = self.url
            driver.get(url)
            driver.find_element_by_link_text("主页").click()
            a = driver.find_element_by_xpath('//*[@id="page"]/a[1]').text
            time.sleep(5)
            print(a)
            try:
                self.assertEqual(a, "上一页", msg="跳转失败")
            except:
                if not os.path.exists("./image"):
                    os.makedirs("./image")
                now = time.strftime("%Y%m%d-%H%M%S", time.localtime(time.time()))
                driver.get_screenshot_as_file('./image/' + now + '-' + 'error.png')

    if __name__ == "__main__":
        unittest.main(verbosity=2)

  • 在登录页面的两个输入框中输入信息,并且通过键盘事件进行登录,利用alert弹窗中的内容来判断是否登录成功,利用assertEqual这个断言来判断弹窗中的内容是否为“恭喜,登录成功!”,如果是,则说明登录成功,如果不是,则对异常进行处理,并进行异常截图。
  • 判断在登录页面点击“主页”,是否能够正常跳转到主页的博客页列表。

在这里插入图片描述

2.2 注册功能测试

from selenium import webdriver
import unittest
import time
import os
from selenium.common.exceptions import NoAlertPresentException
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

class Testlogin2(unittest.TestCase):
#     测试固件
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.url = "http://101.42.153.174:8080/myblog/reg.html"
        self.driver.get(self.url)
        self.driver.maximize_window()
        time.sleep(3)

    def tearDown(self):
        self.driver.quit()

#     测试用例
#     忽略测试用例的执行
#     @unittest.skip("skipping")

    def test_reg(self):
        driver = self.driver
        # 登录操作
        driver.find_element_by_id("username").send_keys("赵亮")
        # 使用tab键将焦点定位到用户名
        driver.find_element_by_id("username").send_keys(Keys.TAB)
        driver.find_element_by_id("nickname").send_keys("亮亮")
        driver.find_element_by_id("password").send_keys("aaaaaaaa")
        driver.find_element_by_id("password2").send_keys("aaaaaaaa")
        # 用enter键直接登录
        driver.find_element_by_id("submit").send_keys(Keys.ENTER)
        time.sleep(6)
        alert = driver.switch_to.alert
        time.sleep(3)
        # 获取alert的文本值
        alert_content = alert.text
        alert.accept()
        try:
            self.assertEqual(alert_content, "恭喜!注册成功!", msg="注册失败")
        except:
            if not os.path.exists("./image"):
                os.makedirs("./image")
            now = time.strftime("%Y%m%d-%H%M%S", time.localtime(time.time()))
            driver.get_screenshot_as_file('./image/' + now + '-' + 'error.png')

    if __name__ == "__main__":
        unittest.main(verbosity=2)

  • 在注册页面的四个输入框中输入信息,并且通过键盘事件进行注册,通过判断alert弹窗中的内容来判断是否注册成功,如果弹窗中的内容为“恭喜!注册成功!”,说明注册成功,如果不是则注册失败,对异常进行处理进行错误截图。
    在这里插入图片描述

2.3 HTML报告的生成

我们可以一个文件夹下的所有测试脚本中的测试用例全部放入测试套件,一次性进行测试,并且生成HTML的测试报告,测试报告中包含每个测试脚本中的测试用例的个数、测试通过的个数、失败的个数、错误的个数以及每个测试用例的错误细节。

import HTMLTestRunner
import os
import sys
import time
import unittest

def createsuite():
    discovers = unittest.defaultTestLoader.discover("../myblogTest", pattern="login*.py", top_level_dir=None)
    print(discovers)
    return discovers

if __name__=="__main__":
    # 文件夹要创建在哪里
    curpath = sys.path[0]
    print(sys.path)
    print(sys.path[0])
    # 1,创建文件夹,创建的这个文件夹干什么
    if not os.path.exists(curpath+'/resultreport'):
        os.makedirs(curpath+'/resultreport')

    # 2,文件夹的命名,不能让名称重复
    # 时间  时分秒 ——》名称绝对不会重复
    now = time.strftime("%Y-%m-%d-%H %M %S", time.localtime(time.time()))
    print(now)
    print(time.time())
    print(time.localtime(time.time()))
    # 文件名
    filename = curpath + '/resultreport/'+ now + 'resultreport.html'

    with open(filename, 'wb') as fp:

        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"测试报告",
                                               description=u"用例执行情况", verbosity=2)
        suite = createsuite()
        runner.run(suite)



请添加图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
AAC(Advanced Audio Coding)是一种音频数据压缩格式,它采用更高效的编码算法,在保留音质的同时减小文件大小。AAC格式广泛用于各种音频播放设备和平台上,如音乐播放器、手机、电视和流媒体服务等。 在测试AAC格式时,我们可以使用不同的音频文件进行试验。首先,我们可以选择一首音频文件,将其转换为AAC格式,并比较转换后的文件大小和音质与原始文件的差异。这可以通过使用各种音频转换工具来完成,例如iTunes。 其次,我们可以测试使用AAC格式的音频在不同设备和平台上的兼容性和播放效果。我们可以尝试在不同的音频播放器和手机上播放AAC格式的音频文件,并评估其播放质量和是否有任何问题。 另外,我们还可以测试AAC格式在网络流媒体传输中的表现。我们可以尝试通过使用不同的流媒体服务,如YouTube或Spotify,以AAC格式传输音频,并评估流畅性、延迟和音质等方面的性能。 最后,在测试AAC格式时,我们还可以比较它与其他音频格式(如MP3、WAV等)之间的差异。我们可以使用相同的音频文件转换为不同格式,并评估它们之间的文件大小、音质和兼容性等方面的差异。 总之,测试AAC格式涉及到对其文件大小、音质、兼容性和流媒体传输性能等方面的评估。这些测试可以帮助我们了解AAC格式的特点和适用性,以便在实际应用中作出合适的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值