Python接口自动化测试框架(练习篇)-- 函数编程(一)

简介: 本文通过实际的编程练习,讲解了面向过程编程的概念和应用,包括如何定义函数、处理文件读写以及实现用户注册功能,最终将这些过程封装成函数,体现了Python作为脚本语言的面向过程编程特性。

前言

python为什么会被认为它是脚本语言,就是因为它的面向过程编程特性,它不需要封装和继承,封装是对于类而言的,而函数是被定义的。它执行顺序是自上而下,所以它更像是一个过程。如果要实现什么功能,就可以按步骤实现:先实现什么,再实现什么,如果不想被执行,就将它们定义成函数,被调用时才执行。所以它也可以是面向过程和函数编程的组合。

练习

主要练习定义函数的方向,还要结合数据类型的处理

写了一个注册的功能
  • 要求:把所有注册成功的用户数据放到文件中进行保存,数据存储的格式不限
  • 提示:每次运行程序,先去文件中读取所有注册过的用户数据,程序运行完之后,将所有的用户数据再次写入到文件中,可以直接在文件中写个列表
分析

应该要画一个注册流程图,注册的时候,优先需要查库(这里是对比文件),是否数据库中已存在,是则不需测试提示去登录就好了,否则才去注册,那么在注册的过程中需要判断帐号密码的合法性(这里不校验帐号的合法性),这样一来二去就理清楚主功能函数的来龙去脉。

def read_user_info():
    '''读取用户信息'''
    try:
        with open(file=r'../txt2/user_info.txt',mode='r',encoding="utf-8") as fp:
            data=eval(fp.read())
    except:
        print("打开文件失败")
        return []
    else:
        return data


def write_user_info(data):
    '''写入用户信息'''
    try:
        with open(file=r'../txt/user_info.txt',mode='w',encoding="utf-8") as fp:
            fp.write(str(data))
    except:
        print("写入文件不存在")

def user_register():
    '''完成用户注册'''
    li1=read_user_info()
    user_name=[]

    try:
        for j in range(len(li1)):
            user_name.append(li1[j]["name"])
    except:
        print("读取数据失败,没有用户数据") 

    while True:
        account=input("请输入账号:")
        passwd=input("请输入密码:")
        vpasswd=input("请再次确认密码:")
        if account not in user_name:
            if  passwd==vpasswd and (len(passwd)>=6 and len(vpasswd) >=6) :
                print("用户名:{}没被注册过!".format(account))
                li1.append({
   "name":account,"passwd":passwd})
                write_user_info(li1)
                print("用户名:{},恭喜你完成注册!".format(account))
                break
            elif len(passwd)<6 or len(vpasswd) <6:
                print("输入密码不能小于六位!")
            else:
                print("输入密码不一致!请重新注册!")
        else:
            print("用户名:{}已被注册,请重新注册!".format(account))
  • 测试,输出结果如下:
请输入账号:123
请输入密码:12345678
请再次确认密码:1234666
输入密码不一致!请重新注册!
请输入账号:1234
请输入密码:123412
请再次确认密码:123412
用户名:1234没被注册过!
用户名:1234,恭喜你完成注册!
面向过程编程

上面的例子已经凸显出面向过程的思想:用户要注册要先查重再校验帐号密码最后才注册成功写入文件;那这种脚本化的流程会实际应用在哪里呢?

最终会演进成类和对象,所有流程要经过的操作步骤,变成了方法,那么再通过类的对象实现调用,按步骤完成整个流程。

  • 可能使用selenium工具举例,更能说明这个面向过程编程的案例:
from selenium import webdriver

# 初始化对象
driver = webdriver.Chrome()
# 打开浏览器
driver.get("http://www.baidu.com")
# 输入查询类容:
driver.find_element_by_id("kw").sendKeys("selenium")
# 点击搜索按钮
driver.find_element_by_id("su").click()
# 关闭浏览器
driver.quit()
    • 这样是不是更直观些,那么面向过程编程就是对函数的应用。

总结

诀窍,在后面讲类和对象的时候,如果不能确定要做成什么类,记得先将步骤(功能)一个个的定义成函数,再将同类型的操作(函数)封装成类,这样做的好处呢,可以在封装类之前,不用对象就能进行代码调试,最终完成一套完整的业务流程。

相关文章
|
1月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
95 0
|
1月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
2月前
|
测试技术 API C++
Playwright 自动化测试系列(7)| 第三阶段:测试框架集成​​Page Object 模式
本课程详解Playwright测试框架中的Page Object模式,通过电商登录-下单实战演示PO架构设计与高级技巧,结合Pytest实现多用户测试。重点解析PO模式提升代码复用性、降低维护成本的核心价值,并提供常见问题解决方案,助力构建高可维护性的自动化测试体系。
|
2月前
|
前端开发 数据安全/隐私保护 Python
虚拟物流单号生成器, 虚拟快递单号假物流信息, 虚拟快递单号在线生成【python框架】
这个虚拟物流单号生成系统包含以下功能:支持多种主流快递公司的单号生成
|
2月前
|
消息中间件 存储 API
抖音私信协议软件,抖音群发私信的工具,抖音自动私信插件【python框架】
这个框架包含配置管理、消息队列、API客户端和主程序四个主要模块。配置管理负责存储账号信息和设置
|
2月前
|
数据采集 API 调度
Python爬虫框架对比:Scrapy vs Requests在API调用中的应用
本文对比了 Python 中 Scrapy 与 Requests 两大爬虫框架在 API 调用中的差异,涵盖架构设计、调用模式、性能优化及适用场景,并提供实战建议,助力开发者根据项目需求选择合适工具。
|
11月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
11月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
11月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
12月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。

推荐镜像

更多