Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while

简介: 本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。

前言

很开心,python学到循环语句了,也越来越好玩了,学到这儿,基本上也能处理一些流水线的工作了,只是稍欠装饰显得不那么灵活、复用性不高。

image.png

循环语句

python中循环语句有for和while;如上图所示,循环基本都需要做点什么,因为不是需要所有数据,也会带上if条件控制一下输出。

while循环

一般句式

# 作为条件,为True才执行里面的代码块,为false则退出循环
while (condition): 
    print("执行语句")

提示一下:python中没有do…while循环

  • 似乎python大多数使用者,没有使用while…else这样的条件
while False:
    print("不会被执行")
else:
    print("当while条件为False时才执行")
  • 示例:求1-100之间的和, 就使用while循环来完成
dig=100

sum=0
count=1
while count <=dig:
    sum+=count
    count+=1

print("1到{}之间的和为:{}".format(dig,sum))
# 输出结果:1到100之间的和为:5050
  • 代码浅析:

    • count作为while循环的计数器,它不能超过目标值dig;否则退出循环,而sum+=count,每次都会sum+count之后重新赋给sum
  • 当然这是咱们学习之后的成果,那怎么确定结果是正确的呢?

    • 两个办法,自己拿笔算一算,开什么玩笑;当然是找规律啦,除去100和50,首尾相加得100的数有49对,如:1+99、2+98、3+97,以此类推,直到49+51,也就是按顺序会有49对首尾相加得100,再加上100+50,可不就是5050
    • 第二个方法自然是用程序来验证,python提供了sum()、range()函数,这里需要批评一下了,在上面的例子中使用了sum=0,也就是它会覆盖了原来的sum()函数,所以在当前代码块中不能使用sum()函数来求和。
# sum()函数接的参数必须是可迭代类型,str除外
s=sum(range(1,101))

print(s) # 输出:5050

# 后面在内置函数再介绍range函数
  • while True: 这个循环有一个特殊场景,就是在客户端需要实时请求,无限循环则非常有用。
for循环

这是个有点特殊的循环,因为它是for…in的组合,in是啥?咱们的成员运算符啊,其实for就是while,只不过condition换成了x in xxx:而已,所以它不能是for True却能x in xxx;思考一下:while 能不能搭配 x in xxx呢?

  • for循环遍历list或者字符串等序列类型
a="1234567"

for i in a:
    print(i)
# 输出:
1
2
3
4
5
6
7
  • for循环经常跟range()函数混在一起;range()函数是一个左闭右开的条件函数
for i in range(5):
    print(i)

# 输出:
0
2
3
4
range()函数
  • range()函数默认从0开始,可以指定区间:range(1,5)
for i in range(1,5):
    print(i)

# 输出:
1
2
3
4
  • 再回忆之前说的str、tuple、list类型对于切片取值的的公式:(nⓂ️k),只不过在range中需要变成逗号:range(n,m,k),m>n,k为步长
# 奇数
for i in range(1,10,2):
    print(i)

# 输出:
1
3
5
7
9
continue和break

字面意思,一个是continue继续循环,一个break是中断循环

  • 前面举例说while True: 是个无限循环,如果配以if条件控制,当满足条件时break跳出循环
# cmd进入python交互命令模式

>>> count=1
>>> while True:
...     print(count)
...     if count==4:
...         print(count)
...         break
...     count+=1
...
1
2
3
4
4
  • 上面的例子如果换成continue,那么就无限循环,它还没中止,自己就终止了。
  • 注意1:所有从for或while跳出的循环都不会再执行后面的else;
  • 注意2:continue和break的位置如果在某块代码前,那么它后面的代码不会被执行。

i = 1
while i < 10:
    if i == 3:
        continue  
        # 不会执行后面的i+=1,i永远是3,然后就在这里无限循环
        print("执行不到")
    i+=1
  • 所以要想 它继续,就在continue之前加入条件:i+=1
# cmd输入python进入交互模式:

>>> i = 1
>>> while i < 10:
...     print(i)
...     if i == 3:
...         i += 1
...         continue
...         print("执行不到的语句")
...     print("当i==3,这句不执行,{}".format(i))
...     i += 1
...
1
当i==3,这句不执行,1
2
当i==3,这句不执行,2
3
4
当i==3,这句不执行,4
5
当i==3,这句不执行,5
6
当i==3,这句不执行,6
7
当i==3,这句不执行,7
8
当i==3,这句不执行,8
9
当i==3,这句不执行,9

# 是不是漏掉了i==3的那句不执行!!!
  • break关键字也来一个例子:
# cmd输入python进入交互模式

>>> i = 1
>>> while i < 10:
...     print(i)
...     if i == 3:
...         i += 1
...         break
...         print("执行不到的语句")
...     i += 1
...     print("只会执行到i==3")
... else:
...     print("从上面循环中跳出,不会执行这里的代码块")
...
1
只会执行到i==3
2
只会执行到i==3
3
pass关键字

它是空语句,什么也不干,就是占位;保持结构的完整性。


if i in range(4):
    pass

# 执行什么也不会,但是它会遍历完
思考一下:while 能不能搭配 x in xxx呢?
相关文章
|
6天前
|
运维 测试技术
拆分软件测试流程,一张图秒杀所有面试
本文主要介绍了软件测试流程的核心内容,包括需求分析、测试用例编写、测试执行、缺陷提交及回归测试等关键步骤。以迭代测试为例,详细说明了每个环节的具体操作和注意事项,并提供了一张测试流程图以便理解。测试流程确保了软件质量,是面试中常见的考察点。
20 7
拆分软件测试流程,一张图秒杀所有面试
|
6天前
|
数据可视化 数据管理 测试技术
聊聊自动化测试框架
关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激
17 4
聊聊自动化测试框架
|
1天前
|
敏捷开发 IDE 测试技术
自动化测试框架的选择与应用
【9月更文挑战第16天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试成为提升软件质量和效率的关键手段。本文将探讨如何根据项目需求选择合适的自动化测试框架,并通过实际案例分析展示其在软件开发过程中的应用。我们将从单元测试、集成测试到端到端测试等多个层面,讨论自动化测试的最佳实践和常见问题解决策略。
|
6天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
27 3
快速上手|HTTP 接口功能自动化测试
|
7天前
|
开发者
利用 GitHub Actions 自动化你的软件开发流程
在快速发展的软件开发环境中,自动化对于提升效率与质量至关重要。GitHub Actions 作为一款强大的工具,能帮助开发者实现从自动运行测试到部署应用等工作的自动化。本文详细介绍了 GitHub Actions 的核心概念、设置方法及实际应用示例,如自动测试、部署和合并 Pull Requests,助力提升开发流程的自动化水平。
|
8天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
12天前
|
存储 Java 关系型数据库
“代码界的魔法师:揭秘Micronaut框架下如何用测试驱动开发将简单图书管理系统变成性能怪兽!
【9月更文挑战第6天】Micronaut框架凭借其轻量级和高性能特性,在Java应用开发中备受青睐。本文通过一个图书管理系统的案例,介绍了在Micronaut下从单元测试到集成测试的全流程。首先,我们使用`@MicronautTest`注解编写了一个简单的`BookService`单元测试,验证添加图书功能;接着,通过集成测试验证了`BookService`与数据库的交互。整个过程展示了Micronaut强大的依赖注入和测试支持,使测试编写变得更加高效和简单。
27 4
|
15天前
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
【9月更文挑战第3天】随着软件行业的迅速发展,代码质量和开发效率变得至关重要。本文探讨了Python在自动化及单元测试中的应用,介绍了Selenium、Appium、pytest等自动化测试框架,以及Python标准库中的unittest单元测试框架。通过详细阐述各框架的特点与使用方法,本文旨在帮助开发者掌握编写高效测试用例的技巧,提升代码质量与开发效率。同时,文章还提出了制定测试计划、持续集成与测试等实践建议,助力项目成功。
39 5
|
14天前
|
数据采集 测试技术 API
在BrowserStack上进行自动化爬虫测试的终极指南
随着互联网的发展,数据价值日益凸显,爬虫技术成为提取网页信息的关键工具。然而,不同环境下的测试与运行挑战重重,特别是在多浏览器、多平台上保证爬虫的稳定性和兼容性尤为困难。BrowserStack作为领先的跨浏览器测试平台,提供了强大的工具和服务。本文将详细介绍如何在BrowserStack上进行自动化爬虫测试,并结合代理IP技术提升爬虫的隐蔽性和成功率。通过具体步骤和案例分析,展示如何利用Selenium、自定义用户代理和Cookie设置来应对反爬虫机制。本指南旨在为开发者提供实用模板,帮助其在多变的测试环境中构建高效的爬虫系统。
|
17天前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
40 4