Unittest框架--自动化

Python中方法的传递在这里插入图片描述

在这里插入图片描述

参数化

pip install parameterized -i https://pypi.douban.com/simple

在这里插入图片描述
需求:验证Tpshop登录

# 断言+参数化
import time
import unittest
from parameterized import parameterized
from selenium import webdriver
from selenium.webdriver.common.by import By
class login_test(unittest.TestCase):
    # 用类级提取“公因式”
    @classmethod
    def setUpClass(cls) :
        # cls.driver  创建浏览器传入命令
        cls.driver = webdriver.Chrome()
        cls.driver.maximize_window()
        cls.driver.implicitly_wait(15)
        cls.driver.get("http://localhost/")
        cls.driver.find_element(By.CSS_SELECTOR, ".red").click()
    # 每次跳转到登录页面都刷新
    def setUp(self) :
        self.driver.refresh()
    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    # 参数化
    @parameterized.expand([("13800138006","123456","8888","安全退出")])
    def test_login03_success(self,username,pwd,code,result):

        self.driver.find_element_by_xpath("//*[contains(@autofocus,'autofocus')]").send_keys(username)
        self.driver.find_element_by_xpath("//div/input[@class='text_cmu' and @name = 'password']").send_keys(pwd)
        self.driver.find_element_by_xpath("//input[@name='verify_code']").send_keys(code)
        self.driver.find_element_by_xpath("//a[@class='J-login-submit']").click()
        time.sleep(3)
        msg = self.driver.find_element(By.XPATH, "//*[text()='安全退出']").text

        # 使用断言(机器自动比对,判读,得出结果)
        self.assertIn(result,msg)
        print(msg)
        self.driver.quit()

    @parameterized.expand([("13800130006","123456","8888","账号不存在"),("13800138006","123056","8888","密码错误")])

    def test_login01_username_is_error(self,username,pwd,code,result):

        # 输入用户名
        self.driver.find_element_by_id("username").send_keys(username)
        # 输入密码
        self.driver.find_element_by_id("password").send_keys(pwd)
        # 输入验证码
        self.driver.find_element_by_id("verify_code").send_keys(code)
        # 点击‘登录’
        self.driver.find_element_by_name("sbtbutton").click()
        time.sleep(3)
        # 断言提示信息
        msg = self.driver.find_element_by_class_name("layui-layer-content").text
        self.assertIn(result,msg)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/153029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于JAVA的智能停车场管理系统

项目编号: S 005 ,文末获取源码。 \color{red}{项目编号:S005,文末获取源码。} 项目编号:S005,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系…

Docker 容器中的网络优化与 DNS 缓存清理

在使用Docker 18.03.1-ce版本在Ubuntu 18.04 LTS上运行多个Docker容器时,我发现当使用requests库发送请求到某个主机名时,响应速度非常慢。在本例中,每个容器都有自己的CherryPy服务器,并通过requests.get(http://main:8083)或req…

2022CCPC绵阳 ACGHM

Dashboard - 2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite - Codeforces C.Catch You Catch Me 题意 思路 首先注意到贡献可以按深度统计,对于每个深度dep,贡献是在dep深度中属于的子树种类数,如果在该深度中子树存在…

python文件读写练习题--随机出10套试卷

要求就是:10套试卷题目顺序不同,答案顺序不同 import random import os city {河北省:石家庄市,山西省:太原市,辽宁省:沈阳市,吉林省:长春市,黑龙江省:哈尔滨市,江苏省:南京市,浙江省:杭州市,安徽省:合肥市,福建省:福州市,江西省:南昌市}#在当前路径下…

如何深度了解汤泉场所?VR全景给你答案

天气逐步转凉,温泉、水会这些室内汤泉场所开始登上消费的主战场。伴随着人们物质生活水平的提高,人们对休闲养生会馆的要求也愈发旺盛,汤泉场所也逐渐从单一的洗浴开始向休闲、娱乐、保健、桑拿等多种业态形式发展,那么大家如何深…

如何利用SD-WAN优化云时代的网络连接

在多云时代下,企业的网络连接需求面临着诸多挑战和变化。随着企业应用的日益复杂和分散,网络连接也变得更加复杂。企业需要同时连接多个云服务商、数据中心、分支机构和移动用户等,并保证网络连接的稳定性和可靠性。同时,企业对于…

什么是自动化测试

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

大数据的技术运用:探索未来的无限可能性

随着科技的不断进步和社会信息的快速增长,大数据已成为一个热门话题。本文将探讨大数据技术在多个领域的应用,以及它对未来的影响和无限可能性。 导言 在过去的几十年里,大数据技术取得了惊人的发展,它不仅改变了企业的经营方式&a…

2024江苏专转本流程与时间节点

2024江苏专转本考生,提前看一下转本的流程与时间节点!适用于江苏三年制、五年一贯制专转本考试: 1. 专转本工作通知(2023年12月上旬) 若无特殊情况,到12月中旬,江苏省教育厅会发布关于做好2024…

spark性能调优 | 内存优化

目录 我们先了解一下有哪些内存温馨提示RDD示范(spark版本2.1.1)RDD进行优化Df和Ds进行示范 我们先了解一下有哪些内存 1.storage内存 存储数据,缓存 可预估2.shuffle内存 计算join groupby 不可预估spark1.6之前 静态管理的,spark1.6之…

2023测试工程师做哪些准备,才能从众人中脱颖而出,不看后悔10年

最近,裁员的声音此起披伏。貌似我们只有努力奔跑,这一块带有命运诅咒的“石头”才不会轻易的落到我们的头上。 在不是金三银四、金九银十的求职旺季外,还会有机会吗?我想,对于有能力的人来说,任何时候都可…

数据库测试的认知和分类详解

现在的软件系统,尤其是业务应用系统,后台都连接着一个数据库。数据库中存储了大量的数据,数据库的设计是否合理和完善,SQL语句编写是否正确、高效,都直接影响了一个软件系统的功能正确性和性能表现。今天跟大家分享一些…

【python】均值、中值和高斯滤波详解和示例

本文对均值、中值和高斯滤波进行详解,以帮助大家理解和使用。 这里写目录标题 均值滤波中值滤波高斯滤波核大小为(9,9)核大小为(51,51) 小结 下面是示例中使用的原图。 均值滤波 均值滤波是一种简单的平滑滤波器&…

猫罐头怎么选择?市面上最受欢迎的5款猫罐头推荐!

很多人在买猫罐头的时候,可是费了老鼻子劲儿了。他们浏览了各大平台,读了大量的评测文章,就想着找到最好的那一个。但最后他们发现,很多所谓的「实测」都是虚的,假的。花了几天时间,结果选了个质量不好的猫…

骨传导式蓝牙耳机值得入手吗?盘点最值得入手的5款骨传导耳机

在骨传导耳机还没有火之前,相信很多朋友都是使用入耳式和头戴式耳机比较多一点,但是慢慢的会发现,这两种耳机都存在很大的问题,比如说入耳式耳机,长时间佩戴会造成耳朵痛等问题,而头戴式耳机因为隔音效果好…

vue2项目从0搭建(二):配置代理,登录功能和菜单权限

前言: 发送ajax,fetch,websocket请求获取服务端的数据,配置代理是必须的环节 登录功能和菜单权限是后台管理系统中非常经典且十分重要的业务,这里涉及的知识点也是比较多的,坑也多,面试也是很重要的一环。 这里必须得会,没错是必须。 配置服务代理 创建两个node服务 在和…

【SOLO】实例分割论文SOLO: Segmenting Objects by Locations详解

🚩🚩实例分割论文专栏快速跳转🚩🚩【实例分割】 目录 🌞🌞1.摘要 🌳🌳2.创新点 🌼🌼3.网络结构 🎃🎃3.1背景 🎃&…

4-flask-cbv源码、Jinja2模板、请求响应、flask中的session、flask项目参考

1 flask中cbv源码 2 Jinja2模板 3 请求响应 4 flask中的session 5 flask项目参考 1 flask中cbv源码 ***flask的官网文档:***https://flask.palletsprojects.com/en/3.0.x/views/1 cbv源码执行流程1 请求来了,路由匹配成功---》执行ItemAPI.as_view(item…

【java学习—十五】线程的生命周期(4)

文章目录 线程的生命周期1. 相关概念 线程的生命周期 1. 相关概念 线程的生命周期:线程从生到死的整个经历。 JDK 中用 Thread.State 枚举表示了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。 Java 语言使用 Thread 类及其子类的…