西湖区外贸网站建设,商梦建站,火车头wordpress免登录发布,企业网站托管方案内容具体有哪些Python生成器Generator
Python生成器#xff08;Generator#xff09;是一种特殊类型的函数#xff0c;它可以通过yield语句逐步生成值。
生成器提供了一种延迟计算的方式#xff0c;可以逐步产生结果#xff0c;而不是一次性生成所有的值。 1、生成器原理#xff1a; …Python生成器Generator
Python生成器Generator是一种特殊类型的函数它可以通过yield语句逐步生成值。
生成器提供了一种延迟计算的方式可以逐步产生结果而不是一次性生成所有的值。 1、生成器原理
生成器函数在被调用时并不立即执行而是返回一个生成器对象。生成器对象可以被迭代每次迭代都会执行生成器函数中的代码直到遇到yield语句。
当遇到yield语句时生成器会暂停执行并将yield语句后面的值作为当前迭代的结果返回给调用方。下一次迭代时生成器会从暂停的位置继续执行直到再次遇到yield语句。 2、常用场景
迭代大数据集处理大型文件、数据库查询结果或网络数据流等无限序列例如自然数序列、斐波那契数列等数据流处理处理连续的数据流例如实时日志数据或传感器数据惰性计算算法计算应用异步编程生成器可以与协程结合使用处理IO密集型任务或事件驱动的程序
提供高效的惰性计算和按需生成数据的能力。 3、生成器在接口自动化中读取大量用例 1 2 3 4 5 6 7 8 9 10 11 # 生成器函数打开指定测试文件并逐行读取每读取一行都使用yield将用例返回给调用方 def read_test_case(file_path): with open(file_path,r) as file: for line in file: # line.strip(),字符串方法用于去除字符串两端的空白字符包括空格、制表符、换行符等 yield line.strip() # 测试文件路劲 test_case_path testcase.txt for test_case in read_test_case(test_case_path): # execute_case函数为执行用例函数 execute_case(test_case) 4、生成器pytest实现参数化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #定义生成器是由函数和yield关键字创造出来的写法 case模拟从excel或yaml文件读取出的用例数据 标题 内容 预取结果 是否执行 import pytest case[(标题, 内容, 预期结果,是),(标题1, 内容1, 预期结果1,是),(标题2, 内容2, 预期结果2,是2)] def ye(): 这里写读取文件的方法是最终读取case格式这样的用例数据返回一个生成器对 for i in case: # 判断用例是否需要执行如是返回 #print(fi{i}) if i[3] 是: # 返回一组用例数据这组数据使用完后再返回下一组数据 yield i # 使用生成器需要循环读取它返回的每一个值生成器就是ye()这个函数 # for i in ye(): # print(i) # (标题, 内容, 预期结果, 是) # (标题1, 内容1, 预期结果1, 是) pytest.mark.parametrize(title,body,result,is_execute,ye()) def test(title,body,result,is_execute): print(ftitle{title},是否执行{is_execute}) assert 是 is_execute if __name__ __main__: pytest.main([rE:\Mygithub projects\New_api_auto\test_api.py])
运行结果 现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
qq群号485187702【暗号csdn11】
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
视频文档PDF面试题可以关注公众号【软件测试小dao】
最后感谢每一个认真阅读我文章的人看着粉丝一路的上涨和关注礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 希望能帮助到你【100%无套路免费领取】