mms自动化测试unittest生成测试报告

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import unittest


class mms_Demo(unittest.TestCase):
    '''测试mms医药管理系统的登录功能'''
    def setUp(self) -> None:
        self.driver = webdriver.Chrome(r'D:\Program Files (x86)\Chromedriver\chromedriver_win32\chromedriver.exe')
        self.url = 'http://localhost:8080/mms/login.html'
        self.imgs = []
        # 由于mms登陆的提示信息是js加载的 原始的页面上没有 所以使用隐式等待也行
        self.driver.implicitly_wait(5)

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

    # todo:测试输入正确的用户名 密码能否成功登陆 并显示正确的登录用户
    def test_login_success(self):
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('test')
        self.driver.find_element('id', 'password').send_keys('1201')
        self.driver.find_element('xpath', '//input[@value="Login"]').click()
        self.imgs.append(self.driver.get_screenshot_as_base64())

        WebDriverWait(self.driver, 5).until(
            EC.visibility_of_element_located(('id', 'loginName'))
        )

        login_name = self.driver.find_element('id', 'loginName').text
        self.imgs.append(self.driver.get_screenshot_as_base64())

        self.assertEqual('test', login_name)

    # todo:测试输入错误的用户名 正确的密码能否登录失败 并正确显示提示信息
    def test_login_username_fail(self):
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('error')
        self.driver.find_element('id', 'password').send_keys('1201')
        self.driver.find_element('xpath', '//input[@value="Login"]').click()

        sign_text = self.driver.find_element('xpath', '//div[contains(text(), "没有此")]').text
        self.imgs.append(self.driver.get_screenshot_as_base64())     # 保存截图
        self.assertEqual(sign_text, '没有此用户')

    # todo:测试输入正确的用户名 错误的密码能否登录失败 并正确显示提示信息
    def test_login_password_fail(self):
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('test')
        self.driver.find_element('id', 'password').send_keys('1234')
        self.driver.find_element('xpath', '//input[@value="Login"]').click()

        sign_text = self.driver.find_element('xpath', '//div[contains(text(), "密码错误")]').text
        self.imgs.append(self.driver.get_screenshot_as_base64())

        self.assertEqual(sign_text, '密码错误')

    # todo:测试用户名为空 错误的密码能否登录失败 并正确显示提示信息
    def test_login_null_username_fail(self):
        self.driver.get(self.url)
        self.driver.find_element('id', 'password').send_keys('1234')
        self.driver.find_element('xpath', '//input[@value="Login"]').click()

        sign_text = self.driver.find_element('xpath', '//div[contains(text(), "不能为空")]').text
        self.imgs.append(self.driver.get_screenshot_as_base64())

        self.assertEqual(sign_text, 'User Id不能为空')

    def test_login_null_password_fail(self):
        self.driver.get(self.url)
        self.driver.find_element('id', 'username').send_keys('test')
        self.driver.find_element('xpath', '//input[@value="Login"]').click()

        sign_text = self.driver.find_element('xpath', '//div[contains(text(), "不能为空")]').text
        self.imgs.append(self.driver.get_screenshot_as_base64())

        self.assertEqual(sign_text, 'password不能为空')

使用HTMLTestRunner_cn生成测试报告

self.imgs用来存放截图存放截图,必须使用imgs否则无法保存截图

HTMLTestRunner_cn源码中一致使用imgs

import unittest
from HTMLTestRunner_cn import HTMLTestRunner

base_url = 'cases'
test_case = unittest.defaultTestLoader.discover(base_url + '/mms/', pattern='*.py')
rs = unittest.TestSuite(test_case)

run_test = HTMLTestRunner(
    title='登录测试报告',     # 测试报告标题
    description='mms登录模块测试v1.0',    # 测试报告描述
    stream=open('test_html_report.html', 'wb'),     # 测试报告保存位置
    verbosity=2,    # 测试报告详细等级
    retry=3,    # 测试用例失败 重试多少次
    save_last_try=True,     # 如果重试 是否只记录最后一次执行的结果
)

run_test.run(rs)

使用HTMLTestRunner运行测试

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值