自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 软件测试面试题 | 提BUG相关

测试提bug相关注意事项

2022-05-06 17:45:42 2122

原创 HttpRunner - 乱码处理

由于httprunner是采用requests去请求的,所有requests遇到的问题它也会遇到一、请求参数乱码1、json中包含中文传参的转码问题使用debugtalk.py转码后再引用(有报错)2、修改源码二、响应正文乱码百度首页请求举例1、将预期值的编码转成接口返回的一致...

2022-05-06 13:43:46 541

原创 HttpRunner-实现参数化的五大方法

1、在YAML/JSON中直接指定参数列表2、调用debugtalk.py中自定义的函数生成参数列表3、通过内置的函数引用CSV文件4、pymysql库实现参数化5、参数化实现及用例重复执行

2022-05-06 13:39:55 1662 1

原创 Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法

1、打开Run-Edit Configurations2、选中Emulate terminal in putput console3、重新运行py文件即可

2022-04-27 14:37:20 3594

原创 Python 实现自动打开电脑程序进行操作

1、安装pyautogui2、识别鼠标坐标3、报错解决

2022-04-25 14:31:04 10965 9

原创 HttpRunner- 测试用例分层一(接口定义、测试用例、测试套件)

1、测试用例分层定义2、API、testcases、testsuites分层设计举例

2022-04-10 22:26:41 1069 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 753

原创 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 746

原创 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 3808

原创 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 988

原创 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 675

原创 Jmeter循环获取JDBC查询结果及断言数据库查询结果

1、Jmeter连接数据库操作步骤2、通过ForEach控制器实现循环获取数据库查询结果3、将数据库查询结果作为接口返回数据断言的对象

2022-04-08 13:52:54 6803

原创 Jinja2安装报错解决方案- ImportError: cannot import name ‘soft_unicode‘ from ‘markupsafe‘

Jinja2安装报错解决方案

2022-04-06 13:30:41 1589

原创 实战问题总结 | Python比对接口返回数据和数据库所存数据是否一致

1、获取接口指定字段的返回参数2、获取数据库内容3、下划线转驼峰4、字典value数据类型转换5、字典key排序6、字典元素比较

2022-04-06 13:27:22 3589

原创 Request模块(八)-- re模块及及正则表达式

1、re.match2、re.search3、re.findall4、re.finditer5、re.split6、re.sub7、正则表达式分组() 匹配括号内的表达式8、常用的正则表达式模板:(.+?) 、[\s\S]

2022-03-14 23:00:22 726

原创 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 1802

原创 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 1177

原创 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 2042

原创 Requests模块(四)-- 获取响应正文的多种方式

1、print(response_obj.text)2、content 二进制形式返回响应正文3、响应正文为json数据,可直接返回json对象4、raw 响应正文以原始数据展示,需要在请求中增加参数stream=True

2022-03-13 23:40:25 1683

原创 Requests模块(三)-- JSON格式与字符串转换语法

一、JSON格式介绍json数据是开发常用的一种数据报文交换格式,常用于接口返回前端、接口之间传递信息等,两种格式1、键值对:{"name":"丸子"} 2、数组格式:[{"name":"丸子"},{"name":"金子"}]二、如何判断数据是否为json格式1、键值对格式和数组格式可以嵌套使用 2、python,json数据相当于字典、列表(字符串一定要用双引号)三、举例说明举例一:把json对象转换成字符串 json.dumps() 转化过程自动把中文字符编码成Unico

2022-03-13 23:31:09 1767

原创 Request模块(二) -- 获取响应信息及响应正文的编码处理

1、获取响应信息语法2、模拟请求头3、响应正文编码处理

2022-03-13 23:16:45 2273

原创 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 2446 1

原创 Git讲解(四)-- 标签管理

1、git tag语法详解2、head指针游离解决方案

2022-01-18 14:02:10 272

原创 Git讲解(六)-- 远程仓库-克隆+fork操作

1、概述fork2、克隆他人项目至自己仓库3、将克隆的代码改动后申请同步至原仓库4、删除fork的项目

2022-01-18 13:49:26 4254

原创 Git讲解(三)-- 代码分支创建及合并

1、创建分支命令及方法2、合并分支命令及方法3、解决冲突方法

2022-01-16 13:28:25 1145

原创 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 540

原创 Pytest+setup/teardwon使用场景及作用范围

setUp tearDown:执行前准备,执行后清理;公共用例;难点:代码维护、数据维护、公共模块复用pytest的setUp_function只对函数用例生效 不对类中的函数生效setUp_class对类生效setup_method,针对类带test的方法每个方法执行之前执行 不用关注调用方法,只和case数量有关setup_module...

2022-01-14 13:57:33 7405

原创 Git讲解(一)-- 简介、安装及使用教程

1、Git下载与安装2、Git使用方法和常用命令

2022-01-14 13:20:31 744

原创 Pytest.main()函数 - 执行测试时参数含义详解

1、-v 用于显示每个测试函数的执行结果2、-q 只显示整体测试结果3、-s 用于显示测试函数中的print()函数输出4、-x 在第一个错误或测试失败时立即退出5、--maxfail=2 自定义运行多少次失败后停止

2022-01-12 23:47:13 9517

原创 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 5907

原创 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 4980 5

原创 禅道登录举例:Python+Selenium+PageObject模式详解 (一)

禅道举例,PageObject框架优化过程1、封装公共类BasePage2、封装ElementdataUtils,读取Excel中的元素属性3、封装LogUtils,打印日志4、各模块之间的调用详解及登录场景举例

2022-01-10 17:19:17 3023

原创 Python读取.ini配置文件语法

1、读取配置文件数据的语法2、将常用获取配置文件方法封装成工具类

2021-12-30 13:30:11 964

原创 Pycharm的.log文件带问号标识无法打开解决方案

生成的文件有问号标识无法打开时,多数情况均为文件编码格式问题,pycharm默认为GBK格式,需要转为UTF-8

2021-12-17 14:54:12 3050 1

原创 ADB+Python+Appium连接真机操作步骤说明及报错解决方案

1、adb+Python+appium连接真机操作2、由于目标计算机积极拒绝,无法连接。(10061)解决方案3、error: more than one device/emulator解决方案4、Could not find 'apksinger.jar' in XX路径解决方案5、Original error: The JAVA_HOME environment解决方案6、Original error: Activity name '.main.MainActivity'解决方案

2021-12-14 19:09:45 6626 8

原创 Python自定义路径格式:OSError: [Errno 22] Invalid argument报错解决方案

将时间指定格式化后,文件名不支持":",与Windows文件命名规范需保持一致

2021-12-14 13:16:15 2123

原创 Python+Selenium+Unittest+HTMLTestRunner线性自动化框架实战详细教程

大部分公司项目管理工具都为禅道,此篇以禅道登录进行举例一、创建包和目录1、common:存放公共方法,如测试执行前的操作(打开浏览器)、测试执行后的操作(关闭浏览器)、登录等2、config:一般用于存放ini配置文件3、report:用于存放HTML测试报告4、test_cases:测试用例目录5、run_all.py:用于执行所有测试用例的文件二、各目录的编写方法1、首先编写单独的测试用例,确定单独模块可执行成功import unittestimport t.

2021-12-13 22:02:38 1864 1

原创 Python+Unittest - discover()构建不同目录下的用例

1、执行指定路径的所有用例unittest.defaultTestLoader.discover()方法2、执行指定类的指定用例unittest.TestLoader()方法

2021-12-09 18:36:29 1996 1

原创 Python+Selenium UI自动化 - Unittest+HTMLTestRunner生成测试报告以及忽略用例

1、HTMLTestRunner2、unittest.main(verbosity= N)用法3、verbosity+TextTestRunner将测试结果写入文本文件,控制台仅打印输出语句

2021-12-09 13:19:51 1115

原创 Python+Selenium UI自动化 - Unittest构建测试套件

一、执行所有用例:1、直接unittest.main()2、套件名称 = unittest.TestLoader().loadTestsFromTestCase(类名)3、套件名称 =unittest.TestLoader().loadTestsFromModule(模块名称)二、执行指定模块的指定类中的一条或多条用例1、套件名称.addTest(类名.方法名)2、套件名称 = unittest.TestLoader().loadTestsFromName('模块名.类名.方法名')

2021-12-08 18:39:53 278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除