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

四、Python编程基础04

这里写目录标题

  • 一、集合[了解]
  • 二、函数
    • 1. 函数定义与调用
    • 2. 函数返回值
  • 三、模块和包
    • 1. 登录案例
    • 2.登录案例优化
    • 3. 随机数案例
  • 四、异常
  • 五、web自动化测试
    • 1、selenium介绍
    • 2、环境搭建
      • 具体安装步骤请看
    • 3、入门案例
      • 3.1 自动化测试步骤
      • 3.2 案例

一、集合[了解]

  • 1, 集合 set, 表现形式 {数据, 数据, 数据}
  • 2, 集合中的数据是没有重复的(重要), 应用这个特点对列表中的数据进行去重
    • 先将列表转换为 集合类型,再将集合转换为列表类型
# 前置随机数使用
# 导包
import randomtest_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))   # 利用集合数据唯一性特点来实现对列表数据去重

二、函数

掌握函数的定义及调用方法

函数可以实现一个特定的功能
print() 控制台打印输出
input() 获取键盘的输入
type() 获取变量的类型
len() 容器的长度

  • 函数: 将多行代码(实现一个特定的功能)写在一块,起个名字,在需要的时候进行调用
  • 函数的作用: 对代码进行封装,提高编程效率,减少代码的冗余(重复的代码不需要多次书写)

1. 函数定义与调用

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

2. 函数返回值

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

三、模块和包

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

1. 登录案例

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

2.登录案例优化

在这里插入图片描述

  • 定义fun_login2函数
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. 随机数案例

  • 需求:定义函数 func, 可以按照如下要求生成随机数:
      1. 该函数可以接收三个参数;
      • 参数1,为生成随机数的个数;
      • 参数2 和参数3 为生成的随机数的范围;
      • 参数2 和参数 3, 如果不传递,默认生成 1- 1000 之间的随机数
      1. 要求生成的随机数不能重复。
      1. 将生成的随机数列表进行返回。
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))

在这里插入图片描述

四、异常

在这里插入图片描述

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

五、web自动化测试

1、selenium介绍

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

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

2、环境搭建

在这里插入图片描述

具体安装步骤请看

selenium和Chrome与chromedriver安装-注意全程联网操作

3、入门案例

3.1 自动化测试步骤

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

3.2 案例

在这里插入图片描述

# 1、导包
import time
from 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 time
from 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()
http://www.xdnf.cn/news/1629.html

相关文章:

  • 【ES实战】Elasticsearch中模糊匹配类的查询
  • 【嵌入式系统设计师(软考中级)】第二章:嵌入式系统硬件基础知识(2)
  • 常见接口测试常见面试题(JMeter)
  • Vue3 + TypeScript,使用provide提供只读的响应式数据的详细分析与解决方法
  • 蓝牙 LE:安全模式和程序说明(蓝牙中的网络安全)
  • 3D模型文件格式之《FBX格式介绍》
  • 密码学的hash函数,哈希碰撞, collision resistance, BTC用到的SHA-256简介
  • elementui日历显示红点及根据日程范围判断是否有红点
  • 实验三 进程间通信实验
  • 504 nginx解决方案
  • arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
  • LeetCode238_除自身以外数组的乘积
  • 2025.5.4机器学习笔记:PINN文献阅读
  • React状态提升深度解析:原理、实战与最佳实践
  • 声音分离人声和配乐-从头设计数字生命第4课——仙盟创梦IDE
  • 树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法
  • 从数据到智慧:解密机器学习的自主学习密码
  • springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 【Python】Python在Linux上安装等操作流程以及注意事项| 基础知识
  • PTA -L1-001 Hello World
  • 项目班——0419——chrono时间库
  • VIC-3D非接触全场应变测量系统用于小尺寸测量之电子元器件篇—研索仪器DIC数字图像相关技术
  • 前端面经-JS篇(四)--回调地狱、promise异步编程、Proxy 与 Reflect 、模块化
  • JMeter 安装及使用 [软件测试工具]
  • 【数据分析实战】使用 Matplotlib 绘制玫瑰图
  • 什么是机器视觉3D碰撞检测?机器视觉3D碰撞检测是机器视觉3D智能系统中安全运行的核心技术之一
  • 使用 Docker 安装 SQL Server 2022 并解决 Navicat 连接问题
  • Linux漏洞管理:自动化扫描与补丁更新策略
  • 【软件设计师】模拟题一
  • 修改el-select背景颜色