Charles抓取模拟器中APP的https请求
君子积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。
环境
系统:win11
Charles版本:4.6.6
模拟器:逍遥模拟器
Charles和模拟器配置
点击help>SSL Proxying>Install Charles root Certificate 安装证书,证书位置选择‘将所有的证书都放入下列存储’,证书存储选择受信任的根证书颁发机构
点击proxy>SSL Proxying Settings打开如下弹框,勾选ssl代理开关,填写需要抓取https的host,port里填写443即可,也可以用*号代替
打开charles,点击help>SSL Proxying>install charles ……………….browser弹出charles信息页面
模拟器中配置代理,我是用的是postern工具,地址和端口填上面的
下载证书,浏览器中输入chls.pro/ssl,如果下载不了就用这个网站https://www.charlesproxy.com/getssl/
...
测试那些事
“君子慎独,不欺暗室,卑以自牧,含章可贞”,人性最危险的时候也就是一个人的时候。
背景看到有人在TesterHome上写了一篇关于测试工作的吐槽:三年功能测试,测试工作吐槽,于是我决定也写一篇测试那些事。
问题一:测试时间评估
一般需要评估时间的都是项目型的测试,如果是走迭代的话,基本就是不需要评估时间了。
突然拉你去评审,然后对于那种一评审完,就开始评估时间的情况,我通常会用开发时间的50%、70% 或 80%(更具业务的复杂程度增加减少百分比)。
是有时间写完用例在评审,那就根据自己写的用例来进行量比就好了。通常都会遇到压榨测试时间的情况,如果自己搞不定,那就向上反馈,把问题说清楚,该加人加人,该延期延期。
问题二:同时多项测试任务
现状:测试着 A 任务,就接到 B 任务的需求评审,已上线的 C 任务现网出现了些问题反馈需要你跟进,然后测试组自动化的任务 D 也要完成进度,最后 C 任务根据用户的一些反馈做了功能整改,拉你评审和排期。
明确优先级,善用项目管理工具,把任务分好优先级,先做截止日期近的任务,灵活应对变化和紧急情况。如果有紧急插入的任务,那就和产品 ...
在Linux运行Playwright实践
系统要求必须要符合以下要求,否则不知道会出现什么问题:
Python 3.8 or higher.
Windows 10+, Windows Server 2016+ or Windows Subsystem for Linux (WSL).
MacOS 12 Monterey or MacOS 13 Ventura.
Debian 11, Debian 12, Ubuntu 20.04 or Ubuntu 22.04.
安装使用pip安装playwright
pip install playwright
安装必须的浏览器,可以指定只安装[firefox/ chromium /webkit]其中的一种:
playwright install
运行headless模式在Linux上,默认情况下,Playwright将在headless模式下运行。要在非headless模式下运行,请将headless=False传递给launch()方法。
from playwright.sync_api import sync_playwrightwith sync ...
自建代理IP
背景一般代理分为正向的和反向的代理,这里不展开讲,因为我最近刚刚好在弄爬虫需要代理IP,所以下文就讲如何使用Nginx搭建一个正向的代理IP。
前置条件
一台有公网IP的云服务器
防火墙的端口已经开放
ubuntu22.04(非必要,只是我的机器是这个)
安装Ningx提示
nginx 正向代理默认只支持 http,
https 的支持需借助第三方模块 ngx_http_proxy_connect_module实现;
代理http安装如果只代理http可以直接通过yum或者apt安装nginx.
配置server { resolver 114.114.114.114; #指定DNS服务器IP地址 listen 58080; # 监听的端口 location / { proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址 proxy_set_header HOST $host; ...
Scrapy入门
Scrapy简介Scrapy(/ˈskreɪpaɪ/)是一个用于抓取网站和提取结构化数据的应用程序框架,可用于各种有用的应用程序,例如数据挖掘、信息处理或历史归档。
尽管Scrapy最初是为网络抓取而设计的,但它也可以用于使用 API(例如Amazon Associates Web Services)提取数据或作为通用网络爬虫。
Scrapy安装Python版本Scrapy 需要 Python 3.8+,CPython 实现(默认)或 PyPy 实现(请参阅替代实现)。
开始安装如果您使用的是Anaconda或Miniconda ,您可以从conda-forge频道安装该软件包,该频道包含适用于 Linux、Windows 和 macOS 的最新软件包。
要使用安装Scrapy conda,请运行:
conda install -c conda-forge scrapy
或者,如果您已经熟悉 Python 包的安装,则可以使用以下命令从 PyPI 安装 Scrapy 及其依赖项:
pip install Scrapy
我们强烈建议您将 Scrapy 安装在专 ...
Mysql8安装
Yum Mysql 前置添加yum储存库首先,将 MySQL Yum 存储库添加到系统的存储库列表中。这是一次性操作,可以通过安装MySQL提供的RPM来执行。
转至MySQL 开发人员专区中的 下载 MySQL Yum 存储库页面 ( https://dev.mysql.com/downloads/repo/yum/ )。
选择并下载适合您平台的发行包。
使用以下命令安装下载的发布包,替换 platform-and-version-specific-package-name 为下载的RPM包的名称:
$> sudo yum install platform-and-version-specific-package-name.rpm
可以通过以下命令检查 MySQL Yum 存储库是否已成功添加(对于启用 dnf 的系统,请将命令中的yum替换为dnf):
$> yum repolist enabled | grep "mysql.*-community.*"
笔记
一旦您的系统上启用了 MySQL Yum 存储库,则通过yum up ...
Playright接口异步请求等待
问题在使用playwright自带的wait_for_load_state()方法来进行等待的时候,遇到异步的接口请求就会导致一直等待接口的返回,或者不等待的情况。
解决思路在 Playwright Python 中,可以通过page.on()方法来监听网络请求和响应,等待与点击操作相关的所有接口请求加载完毕。
代码实现1.设置一个空的 Set 用于存储所有未完成的请求,如果页面有图片加载也可以通过url的尾缀进行过滤
# 设置一个空的 Set 用于存储所有未完成的请求pending_requests = set() def request_started(self, request): # 当新请求开始时,将其添加到 pending_requests pending_requests.add(request) def request_finished(self, request): # 当请求结束时,将其从 pending_requests 中移除 pending_requests.discard(request)
2. 监听 page 的请 ...
测试杂记
“温故而知新,可以为师矣。”,人生的错题本,你不去改,错题就越积越多。
输入框在输入的测试中,需要特别关注小数和浮点数、负数、零和无穷大、非数字字符、边界条件、大数字以及分数和比率等特殊数字的处理情况,以确保系统能够正确处理这些特殊值,并给出适当的结果或错误提示。
常见的特殊字符:
空格和制表符:空格( “ “ )、制表符( “\t” )
特殊符号:句点( “.” )、逗号( “,” )、分号( “;” )、冒号( “:” )、感叹号( “!” )、问号( “?” )、括号( “()” )等。
数字:整数(例如 1, 2, 3)、小数(例如 1.23, 4.56)、负数(例如 -1, -2, -3)、科学计数法(例如 1e3, 2.5e-2)等。
转义字符:反斜杠( “" )、引号( “”” )等。
Unicode 字符:各种语言、符号、表情等,例如:中文( “你好” )、日文( “こんにちは” )、表情( “😀” )等。
控制字符:换行符( “\n” )、回车符( “\r” )等。
HTML 和 XML 实体:例如 <、>、& 等 ...
GIT使用以及规范
GIT使用以及规范一、Git的由来 关于版本控制什么是“版本控制”,为什么要关心? 版本控制是一个系统,用于记录一段时间内对一个文件或一组文件的更改,以便以后可以调用特定版本。 对于本书中的示例,您将使用软件源代码作为受版本控制的文件,尽管实际上您可以使用计算机上的几乎任何类型的文件来执行此操作。如果您是图形或网页设计师,并且想要保留图像或布局的每个版本(您肯定希望这样做),那么使用版本控制系统(VCS)是非常明智的选择。 它允许您将所选文件恢复到以前的状态,将整个项目恢复到以前的状态,比较一段时间内的更改,查看谁上次修改了可能导致问题的内容,谁引入了问题以及何时引入问题等等。 使用 VCS 通常还意味着,如果您搞砸了事情或丢失了文件,您可以轻松恢复。 此外,您只需很少的开销即可获得所有这些。
Git是由Linus Torvalds于2005年开发的一种分布式版本控制系统。当时他为了维护Linux内核而开发了Git,因为之前使用的BitKeeper的授权问题导致Linux社区需要自己开发一个新的版本控制系统。Git之所以能够取代之前的版本控制系统,主要是因为它有以下特点:
分 ...