今天给大家分享在web端的自动化测试中,如果根据代码来自动生成一份好看的测试报告。

方法很简单,一起来学习吧!

一、 首先导入HTMLTestRunner包(这个包需要自己下载,可以去我主页 资源里进行下载)

from TestRunner import HTMLTestRunner


from selenium import webdriver
import unittest

二、测试用例代码

from TestRunner import HTMLTestRunner
from time import sleep

from selenium import webdriver
import unittest


class OATest(unittest.TestCase):

    def setUp(self) -> None:
        self.driver = webdriver.Chrome()
        self.images = []  # 初始化存放测试截图的列表
        self.url = '需要测试的web地址'

    def tearDown(self) -> None:
        self.driver.quit()

    def test_login_success(self):
        '''
        测试当用户名和密码正确时,用户能够成功修改
        :return:
        '''
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('20212248')
        self.driver.find_element('id', 'password').send_keys('Admin123456')
        self.driver.find_element('id', 'passwordConfirm').send_keys("Admin123456")
        self.driver.find_element('id', 'submit').click()
        sleep(5)
        str1 = self.driver.switch_to.alert.text
        self.assertEqual(str1,'修改密码失败,请重试!')
        # 执行截图操作,将当前截图加入到测试报告中
        self.imgs.append(self.driver.get_screenshot_as_base64())
        # str1 = self.driver.switch_to.alert.text()
        # self.assertEqual('修改密码失败,请重试!',str1)

    def test_login_failed_without_username(self):
        '''
        测试当用户名为空时,系统登陆失败
        :return:
        '''
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('')
        self.driver.find_element('id', 'password').send_keys('Admin123')
        self.driver.find_element('id', 'passwordConfirm').send_keys("Admin123")
        self.driver.find_element('id', 'submit').click()
        self.images.append(self.driver.get_screenshot_as_base64())
        errmsg = self.driver.find_element('xpath', "/html/body/div/div/div/div/div/form/div[1]/span[1]").text
        self.assertEqual(errmsg, '学号为7位或8位数字组成')

    def test_login_failed_with_incorrect_username(self):
        '''
        测试输入错误的用户名,系统登陆失败
        :return:
        '''
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('adminx')
        self.driver.find_element('id', 'password').send_keys('Admin123')
        self.driver.find_element('id', 'passwordConfirm').send_keys("Admin123")
        self.driver.find_element('id', 'submit').click()
        self.images.append(self.driver.get_screenshot_as_base64())
        errmsg = self.driver.find_element('xpath', "/html/body/div/div/div/div/div/form/div[1]/span[1]").text
        self.assertEqual(errmsg, '学号为7位或8位数字组成')


if __name__ == '__main__':
    test1 = unittest.defaultTestLoader.loadTestsFromTestCase(OATest)
    suite = unittest.TestSuite(test1)

    runner = HTMLTestRunner(
        title='带截图的测试报告',
        description='xxx软件测试报告v0.1',
        stream=open('OA3_test_report.html', 'wb'),
        verbosity=2,
        # retry=3,
        # save_last_try=Ture
    )

    runner.run(suite)

self.url:要测试的web的页面的网址,例如百度为 www.baidu.com

我这个测试的项目是我自己写的,功能是修改密码的。

运行后自动生成名为'OA3_text_report.html'的测试报告,看看效果吧!

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐