想要学好python自动化测试,当然不可缺少的知识就是python基础知识,有不少同学python学了一遍又一遍,得不到实际运用,所以时间一长,基础知识慢慢还是归零,既浪费了时间又打消了自己的积极性。

从我们python接口自动化测试实战的一期学员说起,有同学看到代码里面的args及*kwargs非常困惑,这就是典型的基础知识没有掌握。

*args用来将参数打包成tuple给函数体调用

"""*args的使用方法:用来将参数打包成tuple给函数体调用"""# 举例1def func1(*args):print(args, type(args))func1(1)# 举例2def func2(x, y,*args):print(x, y, args)func2(1,2,3,4,5)

执行结果:

D:\tttesting\workspace\venv\Scripts\python3.exe D:/tttesting/test.py(1,)<class'tuple'>12(3,4,5)

**kwargs打包关键字参数成dict给函数体调用

"""**kwargs的使用方法:打包关键字参数成dict给函数体调用"""# 举例1def func3(**kwargs):print(kwargs, type(kwargs))func3(a=2)# 举例2def func4(**kwargs):print(kwargs)func4(a=1, b=2, c=3)def func(arg,*args,**kwargs):print(arg, args, kwargs)func(6,7,8,9, a=1, b=2, c=3)

执行结果:

D:\tttesting\workspace\venv\Scripts\python3.exe D:/tttesting/test.py{'a':2}<class'dict'>{'a':1,'b':2,'c':3}6(7,8,9){'a':1,'b':2,'c':3}Process finished withexit code 0

如下部分内容摘自我们python接口自动化测试实战一期课程给学员新增的基础知识,你是否都已经掌握了呢?希望对你有所帮助。

# -*- coding:utf8 -*-"""方法"""# def common(name, value):#     print("这是{}".format(name))#     print(value)### def study_data_type_v2():#     common("字符", "欢迎光临1213abc")#     common("列表", [1, "字符串", dict(name='tt', age=123), [1, 3, 4, 5, ], ])#     print("还有其他有序数据类型:元祖、集合等")#     common("字典", {"name": 'yyt', 'age': 12})"""1. 简单数据结构"""def study_data_type_v1():print("我就是字符串")print("下面是列表")print([1,"字符串",dict(name='tt', age=123),[1,3,4,5,],])# 这里加一个对象print("还有其他有序数据类型:元祖、集合等")print("下面是字典")print({"name":'yyt','age':12})"""2. 简单数据类型的操作"""# region 字符串str_a ="我喜欢"str_b ="吃饭"str_c ="睡觉"test_1 ="这是一个组合"+"的字符串"# 字符串拼接 1test_2 ="_".join([str_a, str_b, str_c])# 字符串拼接 2test_2 = test_2.split("-")# 字符串分割test_3 = str(test_2).replace("_","&&")# 字符串的替换str_d ="字符串的判断"bool_result = bool("判断"in str_d)str_e ="字符串的遍历"for i in str_e:print(i)for index, i in enumerate(str_e):print("字符串中序号为{}的汉字是{}".format(index, i))# endregion# region 列表list_a =[1,3,5,4]list_b =["a","b","c"]list_c =[1,1,1,1]list_d =['d']list_b.extend(list_d)# 两个列表合并list_b[-1]='e'# 赋值list_b.append('f')# 追加split_list_1 = list_b[1:2]split_list_2 = list_b[:2]split_list_3 = list_b[1:]# 判断bool_result = bool("a"in list_b)# 排序list_a.sort(reverse=True)# 遍历for i in list_a:print(i)# endregion# region字典dict_a = dict(name='中国', age=19)dict_b ={"name":"中国","age":19}dict_a['age']=20# 赋值dict_a.update(sex='女')# 更新# 判断bool_result = bool("name"in dict_b)keys = dict_a.keys()# 遍历for k, v in dict_a.items():print("key:{key} value:{value}".format(key=k, value=v))# endregionlist_e =[i*10for i in range(0,5)]# 推到式""" 对象 """classBaseObj(object):class_host ='http://www.class_dev.com'def __init__(self,**kwargs):"""origin doc"""self.host ="http://www.dev.com"self.db ="test"# print("最最最常用的构造函数")# self.update_value(**kwargs)# def __repr__(self):#     print("根据我的意思打印host:{}".format(self.host))#     print(self.__dict__)## def __enter__(self):#     print("我正在连接{}的DB".format(self.db))## def __exit__(self, exc_type, exc_val, exc_tb):#     print("我需要关闭掉当前的{}连接".format(self.db))# def set_doc(self, doc):#     self.__doc__ = doc## def doc(self):#     return self.__doc__## def update_value(self, **kwargs):#     if kwargs:#         for attribute_name in kwargs.keys():#             setattr(self, attribute_name, kwargs.get(attribute_name))#def get_value(self, name, default=None):"""获取对象的属性值:param name: 属性名:param default: 如果没有返回的默认值:return:"""value = getattr(self, name, default)if value isNone:return defaultelse:return value## def clear_value(self):#     for k, v in vars(self).items():#         setattr(self, k, None)# region 修改属性-例子: 统一修改接口访问hostprint(BaseObj.class_host)c =BaseObj()# 修改类属性BaseObj.class_host ='http://www.class_test.com'a =BaseObj()b =BaseObj()print(a.class_host)print(b.class_host)print(c.class_host)# 这个地址会变改变吗?# 修改对象a的属性a.host ='http://www.test.com'print(a.host)print(b.host)# 修改对象b的属性b.host ='http://www.test.com'print(a.host)print(b.host)# endregion# region 放开上面对象中各种方法之后的效果你知道吗?a =BaseObj()b =BaseObj(name='兔子', age=19)# endregion# region 继承classUserInfo(BaseObj):def __init__(self,**kwargs):self.name ="狗子"self.age =1super(UserInfo, self).__init__(**kwargs)def set_name(self, name):self.name = nameuser_info =UserInfo(name="哈斯奇", db="dev")# 看看里面的属性user_info.name ="泰迪"user_info.set_name("吉娃娃")name = user_info.get_value("name")default_value = user_info.get_value("dddd","默认值")# endregion# region装饰器import functoolsdef log(func):@functools.wraps(func)def wrapper(*args,**kwargs):print('call %s():'% func.__name__)print('args = {}'.format(*args))return func(*args,**kwargs)return wrapper@logdef test(p):print(test.__name__ +" param: "+ p)test("I'm a param")# endregion

以上内容希望对你能有所帮助。

下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

想做Python自动化,这些Python常用知识你都掌握了吗?相关推荐

  1. Python自动化--1.Python环境安装-linux

    python自动化更贴近运维自动化 Python自动化–1.Python环境安装-linux Python自动化–2.Python变量 Python自动化–3.Python数据类型 Python自动化 ...

  2. Python自动化--3.Python数据类型

    python自动化更贴近运维自动化 Python自动化–1.Python环境安装-linux Python自动化–2.Python变量 Python自动化–3.Python数据类型 Python自动化 ...

  3. Appium+python自动化8-Appium Python API

    Appium+python自动化8-Appium Python API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contex ...

  4. python做excel自动化-用python进行办公自动化都需要学习什么知识呢?

    自动化办公无非是excel.ppt.word.邮件.文件处理.数据分析处理.爬虫这些.我来一一介绍如何学习,找资料! 最近做了个Python办公自动化的Live讲座,不要脸的推一波~ python基础 ...

  5. python自动化办公-python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  6. python 自动化-利用Python语言实现实验室自动化

    作为一名系统和应用工程师,得益于自动化仪器和软件,我已经节省了不计其数的日日夜夜;例如LabVIEW,这是一款系统设计平台和开发环境,支持可视化编程语言.LabVIEW支持用户利用友好的图形用户界面( ...

  7. Python自动化办公-Python基础教程

    免费学习Python自动化办公教学就在讯飞AI大学堂在线平台 "课程介绍" 6小时的工作10分钟完成,0基础0门槛的Python自动化办公课程 0门槛0基础的自动化办公课程 课程适 ...

  8. python做ui自动化_[python]RobotFramework自定义库实现UI自动化

    1.安装教程 环境搭建不多说,网上资料一大堆,可参考https://www.cnblogs.com/puresoul/p/3854963.html,写的比较详细,值得推荐.目前python3是不支持r ...

  9. Python自动化一--接口测试基础知识,jmeter操作介绍

    一,接口概念 1)系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到 ...

最新文章

  1. nacos 配置中心和注册中心依赖后报错,提示 org.apache.http.impl.client.HttpClientBuilder 这个类找不到
  2. python练习笔记——分解质因数
  3. android-远程图片获取和本地缓存
  4. linux关机时循环输出脚本,Linux关机时执行指定脚本功能实现
  5. java 高级工程师面试
  6. web前端是什么?需要掌握什么技术?
  7. [Python] itertools.islice(iterable, start, stop[, step]) 创建迭代器并返回所选元素
  8. vf计算机教程,VF教程,打印版.pdf
  9. 敏捷开发模式下的质量管理
  10. P4556-线段树合并,差分
  11. 对接科大讯飞AIUI心得
  12. 【蓝桥杯每日一练:小z的序列游戏-k】
  13. Zig-Zag模式填充矩阵
  14. manjaro 安装的艰辛历程,常用软件安装以及踩坑
  15. DM368+聚林200W的并口机芯正常出图
  16. 2021-06-22 9点30 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周一晚上第一个较为正常的4小时反弹出现,日线底分型出现,量能上有持续反弹概率高。周月线持续跌势。
  17. Android 手游聚合SDK那些事
  18. 彻底搞懂弹性布局flex
  19. Python tkinter窗口最大化处理
  20. 卡巴斯基互联网安全套装KIS 7.0.0.125

热门文章

  1. python装饰器函数执行后日志_python 某一函数上面有多个装饰器
  2. 如何将c语言中的文件,急求如何将下列C语言程序数据存储到文件中?
  3. java遇到无穷大抛异常_Java中一个for语句导致无穷大死循环的例子
  4. 不使用网线就无法将两台计算机连接成网络,不通过路由器将两台计算机连接到网络的方法不止一种-如何将两台计算机连接到局域网...
  5. overlayfs高密 读性能_RFID读写器天线圆极化与线极化的性能区别
  6. 如何在用户区显示一张位图
  7. C++指针参数如何传递内存?
  8. 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境
  9. 201700071045.md
  10. !!!后续博客写到简书 + 博客园留博客目录