- 博客(99)
- 收藏
- 关注
原创 【测试开发】函数进阶-纯函数
纯函数是指返回值仅依赖于输入参数且无副作用的函数。其核心原则包括:只使用函数参数作为输入、不改变外部状态、相同输入必有相同输出。与之相对的副作用是指函数对外部环境造成的改变(如修改全局变量)。示例中func1(a,b)是纯函数,仅返回参数之和;而func2(a)是非纯函数,因其依赖外部变量var1。纯函数因其可预测性在编程中被广泛推崇。
2025-06-12 15:51:51
28
原创 【测试开发】数据类型篇-迭代器和生成器
本文介绍了Python中迭代器与生成器的核心概念及区别。迭代器分为两种协议:迭代协议(实现__iter__或__getitem__方法)和迭代器协议(实现__iter__和__next__方法)。可迭代对象包括列表、字符串等,可通过for循环遍历。生成器是一种特殊的迭代器,采用延迟计算方式节省内存,包含生成器表达式和yield函数两种创建方式。相比普通迭代器,生成器多了send()、close()和throw()三种特殊方法。二者关系为:生成器⊂迭代器⊂可迭代对象。文章通过代码示例演示了iter()/nex
2025-06-12 13:25:50
67
原创 【测试开发】数据类型篇-列表推导式和字典推导式
本文介绍了Python列表和字典推导式的语法转换。列表推导式格式为[expression for item in iterable],将示例中for循环生成"page1"到"page10"的代码简化为1行。字典推导式语法为{key:value for item in iterable},展示了用推导式生成数字键值对的示例。两种推导式都能简化代码,提高可读性,其中iterable可以是列表、元组等序列,表达式部分支持格式化等操作。(约100字)
2025-06-12 12:47:47
75
原创 【测试开发】数据类型篇-元组、列表、字典、集合
本文对比了Python中主要数据结构的特点与性能差异。在内存占用方面,元组优于列表,字典耗内存最多但查询最快。元组适用于固定数据结构场景,列表适合需要动态修改的数据。命名元组namedtuple提供了更直观的访问方式。集合可用于快速去重,字典在Python3.7后变为有序。性能排序上,集合查找最快,字典次之,元组和列表较慢;内存消耗方面,字典最多,集合、列表次之,元组最省。开发者应根据数据可变性和性能需求选择合适的数据结构。
2025-06-12 10:47:22
68
原创 【测试开发】虚拟环境,virtualenv和pipenv的安装和应用
1、readme:对项目的整体介绍,也是一份使用手册,需维护更新,通常为README.rst/README.md2、LICENSE:该项目的许可说明和授权3、setup.py:通过setup把可信代码打包发布4、sample:存放项目的核心代码5、requirements.txt:存放该项目所有依赖的第三方库6、docs:包的参考文档7、tests:所有的代码测试都归存于该目录下8、makefile:用于项目的命令管理。
2025-06-12 10:26:11
368
原创 HttpRunner - 乱码处理
由于httprunner是采用requests去请求的,所有requests遇到的问题它也会遇到一、请求参数乱码1、json中包含中文传参的转码问题使用debugtalk.py转码后再引用(有报错)2、修改源码二、响应正文乱码百度首页请求举例1、将预期值的编码转成接口返回的一致...
2022-05-06 13:43:46
662
原创 HttpRunner-实现参数化的五大方法
1、在YAML/JSON中直接指定参数列表2、调用debugtalk.py中自定义的函数生成参数列表3、通过内置的函数引用CSV文件4、pymysql库实现参数化5、参数化实现及用例重复执行
2022-05-06 13:39:55
1886
1
原创 Python +PyQt5 生成exe小工具教程(生成简易计算器举例,通俗易懂,一看就会)
1、pyqt5+qtdesigner安装和环境配置2、创建UI文件3、将UI文件与函数关联4、生成小工具
2022-04-28 15:26:33
3931
6
原创 Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法
1、打开Run-Edit Configurations2、选中Emulate terminal in putput console3、重新运行py文件即可
2022-04-27 14:37:20
4219
3
原创 HttpRunner- 测试用例分层一(接口定义、测试用例、测试套件)
1、测试用例分层定义2、API、testcases、testsuites分层设计举例
2022-04-10 22:26:41
1244
4
原创 HttpRunner- skip语法
百度搜索举例1、skip :无条件跳过- config: name: 验证百度搜索 base_url: https://www.baidu.com- test: #skip 无条件跳过 name: 步骤一:执行百度搜索请求 skip: 无条件跳过 request: url: /s method: GET headers: User-Agent: Mozilla/5.0 (Linux; Android 6
2022-04-10 18:28:29
885
原创 HttpRunner- hook机制
1、 hook机制 相当于unittest中的setup teardown函数2、关键字是setup_hooks 和teardown_hooks3、一般在debugtalk.py中编写相应的初始化及环境清理函数,在测试用例文件中的config及test中根据需要加入setup_hooks 和teardown_hooks①yaml文件内容:- config: name: 验证百度搜索 base_url: https://www.baidu.com setup_hook
2022-04-10 18:23:54
836
原创 HttpRunner- debugtalk.py详解
一、作用1、在内部可以编写辅助函数,然后在yml文件中使用 ${函数名()}2、Debugtalk.py用来确定项目根路径,有Debugtalk.py文件的目录为根目录二、举例:百度搜索“我是丸子吖”①debugtalk.py函数示例②引用的yaml文件- config: name: 验证百度搜索 base_url: https://www.baidu.com- test: name: 执行百度搜索请求 request: url:
2022-04-10 18:16:35
3929
原创 HttpRunner- 环境变量设置.env文件
打开百度举例一、env文件设置1、位置:项目根目录下,新建.env文件,内容格式: 变量名=变量值2、引用方法:在测试用例的yml中,使用 ${ENV(变量名)}二、引用示例- config: name: 测试用例-->验证能否打开百度 base_url: ${ENV(HOSTS)}- test: name: 执行主页请求 request: url: / method: GET extract: -
2022-04-10 18:08:44
1121
原创 HttpRunner- 断言语法
- config: name: 验证能否打开官网 base_url: http://www.hnxmxit.com- test: name: 执行主页请求 request: url: / method: GET extract: - code: status_code - info: reason validate: - is: [$code,200] - {"check":$in.
2022-04-10 17:58:52
773
原创 Jmeter循环获取JDBC查询结果及断言数据库查询结果
1、Jmeter连接数据库操作步骤2、通过ForEach控制器实现循环获取数据库查询结果3、将数据库查询结果作为接口返回数据断言的对象
2022-04-08 13:52:54
7045
原创 Jinja2安装报错解决方案- ImportError: cannot import name ‘soft_unicode‘ from ‘markupsafe‘
Jinja2安装报错解决方案
2022-04-06 13:30:41
1847
原创 实战问题总结 | Python比对接口返回数据和数据库所存数据是否一致
1、获取接口指定字段的返回参数2、获取数据库内容3、下划线转驼峰4、字典value数据类型转换5、字典key排序6、字典元素比较
2022-04-06 13:27:22
3940
原创 Request模块(八)-- re模块及及正则表达式
1、re.match2、re.search3、re.findall4、re.finditer5、re.split6、re.sub7、正则表达式分组() 匹配括号内的表达式8、常用的正则表达式模板:(.+?) 、[\s\S]
2022-03-14 23:00:22
851
原创 Request模块(七)-- 异常处理
1、python自带的异常都存在内置的命名空间中,所以使用时不需要导入2、异常类父类Exception - RequestException - ConnectTimeoutimport requestsfrom requests.exceptions import ConnectTimeout #自定义异常from requests.exceptions import RequestExceptiontry: response = requests.get(url="http:/
2022-03-14 22:47:32
2148
原创 Request模块(六)-- 重定向相关
举例:京东网站的历史地址https://www.360buy.com1、自动重定向,直接填写url地址即可import requestsresponse = requests.get(url="https://www.360buy.com") #自动重定向print(response.url)2、关闭重定向语法:allow_redirects=Falseimport requestsresponse = requests.get(url="https://www.360buy
2022-03-14 22:41:28
1268
原创 Request模块(五) -- 代理设置
测试场景:出于公司对服务器的安全管理1、普通代理设置import requestsproxies = { "http":"http://127.0.0.1:8888", "https":"https://127.0.0.1:8888"}response = requests.get(url="http:XXX", proxies=proxies)print(response.text)2、加密代理设置proxies
2022-03-13 23:53:28
2162
原创 Requests模块(四)-- 获取响应正文的多种方式
1、print(response_obj.text)2、content 二进制形式返回响应正文3、响应正文为json数据,可直接返回json对象4、raw 响应正文以原始数据展示,需要在请求中增加参数stream=True
2022-03-13 23:40:25
1860
原创 Requests模块(三)-- JSON格式与字符串转换语法
一、JSON格式介绍json数据是开发常用的一种数据报文交换格式,常用于接口返回前端、接口之间传递信息等,两种格式1、键值对:{"name":"丸子"} 2、数组格式:[{"name":"丸子"},{"name":"金子"}]二、如何判断数据是否为json格式1、键值对格式和数组格式可以嵌套使用 2、python,json数据相当于字典、列表(字符串一定要用双引号)三、举例说明举例一:把json对象转换成字符串 json.dumps() 转化过程自动把中文字符编码成Unico
2022-03-13 23:31:09
1892
原创 Appium+python OPPO手机避坑指南
报错一:SecurityExceptionjava.lang.SecurityException: uid 2000 does not have android.permission.WRITE_SECURE_SETTINGS解决方案:设置-其他设置-开发者选项-开启“OEM解锁”+开启“USB调试”+开启“禁止权限监控”报错二:启动APP时一直提示waiting for debugger解决方案:设置-其他设置-开发者选项-关闭“等待调试程序”...
2022-02-18 10:10:01
2920
1
原创 Git讲解(六)-- 远程仓库-克隆+fork操作
1、概述fork2、克隆他人项目至自己仓库3、将克隆的代码改动后申请同步至原仓库4、删除fork的项目
2022-01-18 13:49:26
4623
原创 Git讲解(二)-- 基本操作命令及报错解决方案
git add *报错解决方法:修改文件名称:mv test_03.py test3.pygit mv == mv + git add -A撤销修改文件名操作已经git mv 还没有git commit之前撤销修改最后一次提交操作:注释写错或少提交了部分文件,此时需要修正这次提交的内容,把这样的操作成为修改最后一次提交操作git commit -amend -m " "...
2022-01-16 13:22:49
602
原创 Pytest+setup/teardwon使用场景及作用范围
setUp tearDown:执行前准备,执行后清理;公共用例;难点:代码维护、数据维护、公共模块复用pytest的setUp_function只对函数用例生效 不对类中的函数生效setUp_class对类生效setup_method,针对类带test的方法每个方法执行之前执行 不用关注调用方法,只和case数量有关setup_module...
2022-01-14 13:57:33
7503
原创 Pytest.main()函数 - 执行测试时参数含义详解
1、-v 用于显示每个测试函数的执行结果2、-q 只显示整体测试结果3、-s 用于显示测试函数中的print()函数输出4、-x 在第一个错误或测试失败时立即退出5、--maxfail=2 自定义运行多少次失败后停止
2022-01-12 23:47:13
9745
原创 Pytest.main()函数之mark标签使用方法举例
1、创建.ini配置文件,定义标签[pytest]# 固定的section名markers= # 固定的option名称 smoking systems2、创建用例,分别标记,举例如下:3、创建执行所有用例的.py文件,如test_run_all.py(-v 展示用例详细信息 -m仅执行指定标签的用例)import pytestif __name__ == '__main__': pytest.main(['-v','-m smoke']) #.
2022-01-12 16:35:08
6080
原创 Appium实战各种报错及解决方案
Encountered internal error running command: UnknownError: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: socket hang up运行命令时遇到内部错误:UnknownError:在处理命令时发生了未知
2022-01-10 17:25:31
5863
5
原创 禅道登录举例:Python+Selenium+PageObject模式详解 (一)
禅道举例,PageObject框架优化过程1、封装公共类BasePage2、封装ElementdataUtils,读取Excel中的元素属性3、封装LogUtils,打印日志4、各模块之间的调用详解及登录场景举例
2022-01-10 17:19:17
3203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人