当前位置: 首页 > news >正文

【学习 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.xdnf.cn/news/228781.html

相关文章:

  • 3.2goweb框架GORM
  • kotlin 过滤 filter 函数的作用和使用场景
  • MATLAB小试牛刀系列(3)
  • linux系统加固
  • 基于 Rancher 部署 Kubernetes 集群的工程实践指南
  • StarRocks Lakehouse 如何重构大数据架构?
  • 基于标注数据的情感分析模型研究
  • 使用 Spring Data Redis 实现 Redis 数据存储详解
  • 【数据结构】——顺序表刷题
  • 论文阅读:2024 EMNLP User Inference Attacks on Large Language Models
  • MySQL表的内外连接
  • 黑群晖Moments视频无缩略图,安装第三方ffmpeg解决
  • kivy android打包buildozer.spec GUI配置
  • (Go Gin)Gin学习笔记(二):路由配置、基本路由、表单参数、上传单个文件、上传多个文件、浅扒路由原理
  • 2025年- H13-Lc121-189.轮转数组(普通数组)---java版
  • Neo4j多关系或多路径
  • 云备份服务器,数据备份服务器的方法有哪些?
  • 嵌入式软件--stm32 DAY 5 USART串口通讯(上)
  • java瘦身、升级graalvm
  • QT6 源(63)篇六:阅读与注释 QString 这个类,包含了 QString 类的 完整源码,也附上 QLatin1String 类的
  • Redis的简单介绍
  • k8s术语之Replication Controller
  • mmdeploy 转换torch为onnx
  • 2025磐石行动第八周WP
  • JavaScript性能优化实战之代码层面性能优化
  • 贪心算法求解边界最大数
  • 精益数据分析(34/126):深挖电商运营关键要点与指标
  • SAP-ABAP:在SAP系统中,COEP表(成本控制对象行项目表)详解
  • AI 生成UI交互效果
  • 基于C++的IOT网关和平台6:github项目ctGateway后台服务和数据模型