今天给大家分享在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'的测试报告,看看效果吧!