【功能自动化】自动识别测试用例

devtools/2024/9/23 10:30:44/

1.创建unitWebtours.py

将unitWebtours.py放在test文件夹下

unitWebtours.py

代码实现

from selenium import webdriver
from selenium.webdriver.support.select import Select
from time import sleep
import unittestdriver = Noneclass Webtours(unittest.TestCase):@classmethoddef setUpClass(cls):global driverdriver = webdriver.Chrome()@classmethoddef tearDownClass(cls):driver.quit()def test1OpenWeb(self):u'''打开网站'''driver.get("http://127.0.0.1:1080/WebTours/")# 等待3秒sleep(3)driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("info")actual = driver.find_element_by_tag_name("body").text# expect = 'Welcome to the Web Tours site.'# # 精确匹配用in 否则用in # if expect in actual:#     print("打开网站:成功")# else:#     print("打开网站:失败") def test2Loginin(self):u'''登录'''driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("navbar")# 登录yhm = 'admin'mm = '123456'# 输入用户名driver.find_element_by_name("username").send_keys(yhm)# 输入密码driver.find_element_by_name("password").send_keys(mm)# 点击登录driver.find_element_by_name("login").click()sleep(3)# 切换框架driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("info")expect = "Welcome, "+yhmactual = driver.find_element_by_tag_name("body").text# # 精确匹配用in 否则用in # if expect in actual:#     print("登录:成功")# else:#     print("登录:失败")def test3Search(self):u'''搜票'''driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("navbar")driver.find_element_by_xpath('//img[@alt="Search Flights Button"]').click()sleep(3)def test4Book(self):u'''订票'''# 预定票driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("info")Select(driver.find_element_by_name("depart")).select_by_visible_text="London"# select_by_value 值是看不见的Select(driver.find_element_by_name("arrive")).select_by_visible_text="Paris"driver.find_element_by_name("findFlights").click()sleep(1)# 查看预定的航班信息driver.find_elements_by_name("outboundFlight")[0].click()driver.find_element_by_name("reserveFlights").click()sleep(1)# 支付信息driver.find_element_by_name("buyFlights").click()sleep(1)# 切换框架expect = "Flight 240 leaves London for Paris"actual = driver.find_element_by_tag_name("body").text# 精确匹配用in 否则用in # if expect in actual:#     print("订票:成功")# else:#     print("订票:失败")#预定下一个driver.find_element_by_name("Book Another").click()sleep(1)def test5Logoff(self):u'''注销'''# 切换框架driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("navbar")driver.find_element_by_xpath('//img[@alt="SignOff Button"]').click()sleep(1)# 切换框架driver.switch_to.default_content()driver.switch_to_frame("body")driver.switch_to_frame("info")expect = "sign up now"actual = driver.find_element_by_tag_name("body").text# 精确匹配用in 否则用in # if expect in actual:#     print("注销:成功")# else:#     print("注销:失败")if __name__=="__main__":# verbosity=2 显示详细信息,可以省略,测试信息不详细unittest.main(verbosity=2)

2.使用测试套件运行测试函数

代码实现

import unittestsuite = unittest.TestSuite()
tests = unittest.defaultTestLoader.discover('./test',pattern='unit*.py')
suite.addTests(tests)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)


http://www.ppmy.cn/devtools/103300.html

相关文章

UE5-----Niagara粒子系统

在 Unreal Engine (UE) 中,Niagara 是一个粒子系统和视觉效果编辑器,用于创建高质量的实时粒子效果。Niagara 在 Unreal Engine 4.17 版本中首次推出,取代了之前的粒子系统,旨在提供更强大的性能和更高的灵活性。 Niagara 的主要…

挂个人-CSDN Java优秀内容博主rundreamsFly抄袭

事件起因 今天点开自己的CSDN博客,发现给我推了一篇文章抄袭我自己昨天18点发的文章。 就是这篇,一字不差,博主昵称是:rundreamsFly,账号是rundreams。 抄袭者文章 发布于2024-8-26 19:37:41秒,比我发布…

《重生到现代之从零开始的C语言生活》—— 指针4

字符指针变量 在指针类型中我们知道有一种指针类型为字符指针char* 如果我们想用他 int main() {char p w;char *d &p;return 0; }他可以存放字符变量的地址 也可以这么使用 int main() {char *d "hello"return 0 ; }其本质是把字符串"hello"的…

借老系统重构机会我写了个groovy规则引擎

公司老系统的重构计划早就有了,为了对Java硬编码的各种校验规则进行重构,特地参考了相关技术,最终选择了groovy进行了系统的学习,并编写了一个即插即用的轻量级规则引擎。 文章目录 项目背景技术选型groovy的性能统一Java运行环境…

[Labview] 表格改值后单元格编辑功能,更改颜色、字体、颜色等

效果如下所示: 例子中演示了单元格变色,具体需要什么修改,在相同的位置进行操作即可。 检测到[鼠标释放]事件,则记录被选中的单元格。 使用[鼠标按下]事件也可以,不过我个人测试下来,[按下]的判断精准度不…

LoadBalancer负载均衡

一、概述 1.1、Ribbon目前也进入维护模式 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的…

最新国内Docker 安装

一种方法是根据各个发行版的仓库,去安装Docker,这个版本一般比较老。 另一种方式是通过 根据脚本安装。所以给出下面信息。 Mirror 源 MirrorURL西北农林科技大学https://mirrors.nwafu.edu.cn/docker-ce/中国科学技术大学https://mirrors.ustc.edu.cn…

K8s之自动扩缩容

Kubernetes (K8s) 的动态扩缩容(自动伸缩)功能是集群管理中非常关键的一部分,能够根据工作负载的变化自动调整应用程序的副本数,以确保资源的高效利用和服务的稳定性。 K8s介绍文章 容器之k8s(Kubernetes)-CSDN博客 1. 动态扩缩容…