【学习 python day5】

学习目标:

  • python基础
    • 掌握函数的定义及调用方法
    • 掌握模块的用法
    • 掌握包的用法
    • 掌握如何捕获异常
  • web自动化测试
    • 能完成selenium自动化环境部署及结果验证
    • 掌握selenium实现自动化测试的核心步骤

学习内容:

一、Python基础

1、集合[了解]

1, 集合 set, 表现形式  {数据, 数据, 数据}2, 集合中的数据是没有重复的(重要), 应用这个特点对列表中的数据进行去重- 先将列表转换为 集合类型,再将集合转换为列表类型
#前置随机数使用
#导包
import random
test_list = []
# 产生指定范围的随机数
i = 0
# 使用随机数生成 10 个 1-20 之间的随机数
while i < 10:
# print(random.randint(1, 20))
# test_list.append(random.randint(起始值, 结束值))
test_list.append(random.randint(1, 20))
i += 1
print(test_list)
# 对列表中的数据进行去重
print(set(test_list))   # 利用集合数据唯一性特点来实现对列表数据去重

2、函数

  • 掌握函数的定义及调用方法
函数可以实现一个特定的功能
print()  控制台打印输出
input()  获取键盘的输入
type()   
获取变量的类型
len()    
容器的长度
我们自己如何定义一个函数,实现特定的功能
函数: 将多行代码(实现一个特定的功能)写在一块,起个名字,在需要的时候进行调用
函数的作用:  对代码进行封装,提高编程效率,减少代码的冗余(重复的代码不需要多次书写)

函数定义与调用

  • 2.1 函数定义与调用
    在这里插入图片描述
    在这里插入图片描述
  • 2.2 函数返回值

在这里插入图片描述

3、模块和包

  • 掌握模块的用法
  • 掌握包的用法
1. 模块(module), 在Python 中,每个代码文件就是一个模块
2. 模块的好处: 模块中 定义的变量, 函数, 类, 别人可以直接使用
3. 想要使用别人写好的模块,就必须先导入别人的模块 (random)4. 我们自己的代码文件,想要作为模块,让别人使用, 代码文件名,必须满足标识符规则(由字母,数字和下划
线组成, 不能以数字开头)
  • 3.1 登录案例

在这里插入图片描述
在这里插入图片描述

  • 3.2 登录案例优化
    在这里插入图片描述
def fun_login2(phone, pwd):if phone == "13488888888" and pwd == "123456":return "登录成功"else:return "手机号或密码错误"# 导包
from api.login import fun_login2# 准备测试数据
test_data = [{"username": "13488888888","password": "123456"},{"username": "","password": "123456"},{"username": "13488888888","password": ""}]# 遍历数据 调用方法 获取实际结果
for i in test_data:print(f"测试账号为:{i.get('username')} 测试密码为:{i.get('password')} 测试结果:
{fun_login2(i.get('username'), i.get('password'))}")if i.get("username") == "13488888888" and i.get("password") == "123456":assert "成功" in fun_login2(pwd=i.get("password"), 
phone=i.get("username"))else:assert "错误" in fun_login2(pwd=i.get("password"), 
phone=i.get("username"))
  • 3.3 随机数案例
需求:定义函数 func, 可以按照如下要求生成随机数:
1. 该函数可以接收三个参数;- 参数1,为生成随机数的个数;- 参数2 和参数3 为生成的随机数的范围;- 参数2 和参数 3, 如果不传递,默认生成 1- 1000 之间的随机数
2. 要求生成的随机数不能重复。
3. 将生成的随机数列表进行返回。
def func(count, start=1, end=1000):test_data = []while True:  # 不确定循环次数
num = random.randint(start, end)  # 产生随机数
if num not in test_data:          
test_data.append(num)         
# 判定产生的随机数是否在列表中存在
# 如果不存在,就向列表追加数据
if len(test_data) == count:   # 当列表长度等于指定要产生随机数字个数count值
时,跳出循环、回到函数被调用的地方
return test_data          
# 返回最后列表数据
if __name__ == '__main__':print(func(10, 1, 20))

在这里插入图片描述

4、异常

  • 掌握如何捕获异常
    在这里插入图片描述
"""
需求:
提示用户输入一个整数
使用 8 除以用户输入的整数并且输出
要求:为了简化代码,统一捕获所有异常类型"""# 要尝试的代码
try:num1 = int(input("请输入一个整数:"))num2 = 8 / num1print(num2)# 处理异常的代码
except Exception as e:print(e)# raise "程序出错了"# 不管正常还是异常都会执行的代码
finally:print("程序结束")

二、web自动化测试

  • 能完成selenium自动化环境部署及结果验证
  • 掌握selenium实现自动化测试的核心步骤

1、selenium介绍

  • UI:用户操作界面
    • WEB界面
    • APP界面
  • UI自动化:使用代码或工具代替人针对用
  • 户操作界面进行测试
    • 实施UI自动化的前置条件
    • 回归任务重
    • 需求变更不频繁
    • 项目周期长
  • UI自动化测试执行时机
    • 手工测试完成之后进行
  • UI自动化核心价值
    • 节省人力成本
    • 提高回归测试效率
    • 提高测试质量
  • UI自动化测试劣势
    • 对测试人员要求提高
    • 前期投入成本大
    • 对项目要求高
  •               selenium
    

在这里插入图片描述

2、环境搭建

在这里插入图片描述

2.1 安装selenium

在这里插入图片描述

2.2 安装浏览器驱动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 环境确认

在这里插入图片描述

3、入门案例

3.1 自动化测试步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 案例

在这里插入图片描述

# 1、导包
import timefrom selenium import webdriver# 快捷导包 ctrl + alt + 空格
from selenium.webdriver.common.by import By# 2、打开浏览器
driver = webdriver.Chrome()# 窗口最大化
driver.maximize_window()# 3、访问页面
driver.get("https://hmshop-test.itheima.net/Home/user/login.html")# 4、页面操作
# 用户名查找及操作
element = driver.find_element(By.ID, "username")element.send_keys("13488888888")# 密码查找及操作
element = driver.find_element(By.ID, "password")element.send_keys("123456")# 验证码查找及操作
driver.find_element(By.ID, "verify_code").send_keys("8888")# 登录按钮查找及操作
driver.find_element(By.NAME, "sbtbutton").click()# 5、关闭浏览器
time.sleep(3)driver.quit()# 1、导包
import timefrom selenium import webdriver# 快捷导包 ctrl + alt + 空格
from selenium.webdriver.common.by import By
# 2、打开浏览器
driver = webdriver.Chrome()# 窗口最大化
driver.maximize_window()# 3、访问页面
driver.get("https://hmshop-test.itheima.net/Home/user/login.html")# 4、页面操作
# 用户名查找及操作
element = driver.find_element(By.CSS_SELECTOR, "#username")element.send_keys("13488888888")# 密码查找及操作
element = driver.find_element(By.CSS_SELECTOR, "#password")element.send_keys("123456")# 验证码查找及操作
driver.find_element(By.CSS_SELECTOR, "#verify_code").send_keys("8888")# 登录按钮查找及操作
driver.find_element(By.CSS_SELECTOR, "#loginform > div > div.login_bnt > 
a").click()# 5、关闭浏览器
time.sleep(3)driver.quit()

学习时间:

上午 9 点-上午 11 点
下午 3 点-下午 6 点


今日总结:

  • python基础

    • 掌握函数的定义及调用方法
    • 掌握模块的用法
    • 掌握包的用法
    • 掌握如何捕获异常
  • web自动化测试

    • 能完成selenium自动化环境部署及结果验证
    • 掌握selenium实现自动化测试的核心步骤

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day006-实战练习题-参考答案

老男孩教育-99期-实战练习题 1. 你作为"老男孩教育99期云计算"新晋运维工程师&#xff0c;在入职首日遭遇紧急事件&#xff1a; "生产环境3台Web服务器突发性能告警&#xff0c;技术总监要求你立即完成&#xff1a; 快速建立故障诊断工作区收集关键系统指标分…

C# 实现列式存储数据

C#实现列式存储数据指南 一、列式存储概述 列式存储(Columnar Storage)是一种数据存储方式&#xff0c;它将数据按列而非行组织。与传统的行式存储相比&#xff0c;列式存储在以下场景具有优势&#xff1a; ​​分析型查询​​&#xff1a;聚合计算、分组统计等操作效率更高…

Mysql索引分类、索引失效场景

索引分类 按数据结构分类​ B-Tree索引&#xff08;BTree&#xff09; 描述​​&#xff1a;默认的索引类型&#xff0c;大多数存储引擎&#xff08;如InnoDB、MyISAM&#xff09;支持。实际使用BTree结构&#xff0c;数据存储在叶子节点&#xff0c;叶子节点通过指针连接&a…

SpringBoot+Redis全局唯一ID生成器

&#x1f4e6; 优雅版 Redis ID 生成器工具类 支持&#xff1a; 项目启动时自动初始化起始值获取自增 ID 方法yml 配置化起始值可灵活扩展多业务线 ID &#x1f4cc; application.yml 配置 id-generator:member-start-value: 1000000000&#x1f4cc; 配置类&#xff1a;IdG…

深入掌握CSS背景图片:从基础到实战

背景图片&#xff1a; 本文将通过系统化的讲解实战案例&#xff0c;帮助读者彻底掌握CSS背景图片的六大核心知识点。每个知识点都包含对比演示和记忆技巧&#xff0c;建议结合代码实操学习。 一、背景图片基础设置 使用background-image&#xff08;路径&#xff09;属性设置…

WPF之XAML基础

文章目录 XAML基础&#xff1a;深入理解WPF和UWP应用开发的核心语言1. XAML简介XAML与XML的关系 2. XAML语法基础元素语法属性语法集合语法附加属性 3. XAML命名空间命名空间映射关系 4. XAML标记扩展静态资源引用数据绑定相对资源引用常见标记扩展对比 5. XAML与代码的关系XAM…

驱动车辆诊断测试创新 | 支持诊断测试的模拟器及数据文件转换生成

一 背景和挑战 | 背景&#xff1a; 随着汽车功能的日益丰富&#xff0c;ECU和域控制器的复杂性大大增加&#xff0c;导致测试需求大幅上升&#xff0c;尤其是在ECU的故障诊断和性能验证方面。然而&#xff0c;传统的实车测试方法难以满足高频率迭代和验证需求&#xff0c;不仅…

免疫细胞靶点“破局战”:从抗体到CAR-T,自免疾病治疗的3大技术突破

引言 人体免疫系统组成了一个严密调控的“网络”&#xff0c;时刻检测着外来病原体&#xff0c;并将其与自身抗原区分开来。但免疫系统也可能会被“策反”&#xff0c;错误的攻击我们自身&#xff0c;从而导致自身免疫性疾病的发生。 目前已知的自免疾病超过100种&#xff0c…

计算机网络应用层(5)-- P2P文件分发视频流和内容分发网

&#x1f493;个人主页&#xff1a;mooridy &#x1f493;专栏地址&#xff1a;《计算机网络&#xff1a;自顶向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客 &#x1f493;本博客内容为《计算机网络&#xff1a;自顶向下方法》第二章应用层第五、六节知识梳理 关注我&…

十二种存储器综合对比——《器件手册--存储器》

存储器 名称 特点 用途 EEPROM 可电擦除可编程只读存储器&#xff0c;支持按字节擦除和写入操作&#xff0c;具有非易失性&#xff0c;断电后数据不丢失。 常用于存储少量需要频繁更新的数据&#xff0c;如设备配置参数、用户设置等。 NOR FLASH 支持按字节随机访问&…

第十六届蓝桥杯 2025 C/C++组 旗帜

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; P12340 [蓝桥杯 2025 省 AB/Python B 第二场] 旗帜 -…

比亚迪再获国际双奖 以“技术为王”书写中国汽车出海新篇章

近日&#xff0c;全球汽车行业权威奖项“2025世界汽车大奖”&#xff08;World Car Awards&#xff09;在纽约国际车展举行颁奖典礼&#xff0c;比亚迪海鸥&#xff08;BYD SEAGULL/BYD DOLPHIN MINI&#xff09;摘得“2025世界城市车&#xff08;World Urban Car&#xff09;”…

人工智能数学基础(五):概率论

概率论是人工智能中处理不确定性的核心工具&#xff0c;它为机器学习、数据科学和统计分析提供了理论基础。本文将深入浅出地介绍概率论的重要概念&#xff0c;并结合 Python 实例&#xff0c;帮助读者更好地理解和应用这些知识。资源绑定附上完整资源供读者参考学习&#xff0…

MCP协议:自然语言与结构化数据的双向桥梁 ——基于JSON-RPC 2.0的标准化实践

MCP协议&#xff1a;自然语言与结构化数据的双向桥梁 ——基于JSON-RPC 2.0的标准化实践 一、MCP的本质&#xff1a;标准化共识的协议框架 MCP&#xff08;Model Context Protocol&#xff09;是Anthropic于2024年提出的开放通信协议&#xff0c;其核心价值在于建立自然语言…

vue+django农产品价格预测和推荐可视化系统[带知识图谱]

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站&#xff0c;有好处&#xff01; ✅编号&#xff1a;D010 vue django 前后端分离架构搭建的系统带有推荐算法、价格预测、可视化、知识图谱数据从爬虫获取可以更新到最…

verilog_testbench技巧

forever语句 forever begin state; end 一直执行state repeat&#xff08;n&#xff09; begin state; end 执行state&#xff0c;n次 force语句对双向端口进行输入赋值。 与wait 是边沿触发&#xff0c;wait是电平触发 仿真控制语句与系统任务描述 $stop停止仿真…

实时时钟(RTC)从原理到实战

1. RTC技术深度解析 1.1 RTC核心概念 实时时钟&#xff08;Real-Time Clock&#xff0c;RTC&#xff09;是嵌入式系统中独立于主处理器的特殊计时电路&#xff0c;其核心功能在于提供持续可靠的时间基准。与CPU时钟不同&#xff0c;RTC具有以下关键特性&#xff1a; 独立供电…

pyspark将hive数据写入Excel文件中

不多解释直接上代码&#xff0c;少python包的自己直接下载 #!/usr/bin/env python # -*- encoding: utf-8 -*- from pyspark.sql import SparkSession import pandas as pd import os# 初始化 SparkSession 并启用 Hive 支持 spark SparkSession.builder \.appName("sel…

Stack--Queue 栈和队列

一、Stack--栈 1.1 什么是栈&#xff1f; 堆栈是一种容器适配器&#xff0c;专门设计用于在 LIFO 上下文&#xff08;后进先出&#xff09;中运行&#xff0c;其中元素仅从容器的一端插入和提取。 第一个模版参数T&#xff1a;元素的类型&#xff1b;第二个模版参数Container…

用Python做有趣的AI项目1:用 TensorFlow 实现图像分类(识别猫、狗、汽车等)

项目目标 通过构建卷积神经网络&#xff08;CNN&#xff09;&#xff0c;让模型学会识别图片中是什么物体。我们将使用 CIFAR-10 数据集&#xff0c;它包含 10 类&#xff1a;飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。 &#x1f6e0;️ 开发环境与依赖 安装依赖&…