自动化测试工具-Playwright
应用范围:web UI自动化、H5 UI自动化、安卓自动化
优点:
1、适用于多浏览器、多语言
2、可以使用基于css、xpath、text这些常用的元素定位方式进行录制生成代码,能大幅度的减少写代码的时间,同时代码稳定性也可以 保证
3、可以使用api方式操作浏览器内核,速度快,而且可以和浏览器双向沟通,元素操作可以在元素ready的情况下进行,稳定性很好
4、支持UI和非UI方式运行,节省了debug、 run时间
5、与pytest测试框架集成
安装:
pip install playwright
需要安装对应驱动的浏览器
python -m playwright install
录制:
codegen
通过python -m playwright codegen --help 可查看所有用法
-o:将录制的脚本保存到一个文件的文件名称
-target:指定生成的脚本语言,默认为python,目前支持python和JS
-b:指定浏览器驱动
示例:
python -m playwright codegen --target python -o open_baidu.py -b chromium https://www.baidu.com
支持:
同步:
from playwright.sync_api import sync_playwright
异步:
import asyncio
from playwright.async_api import async_playwright
H5 代码示例:
from time import sleep from playwright.sync_api import sync_playwright
with sync_playwright() as p: GalaxyS5 = p.devices[\'Galaxy S5\'] browser = p.chromium.launch(headless=False) context = browser.new_context(**GalaxyS5) page = context.new_page() page.goto(\'https://xingzheai.cn/\') page.click(\'text="查看详情"\') # 截图 page.screenshot(path=\'colosseum-GalaxyS5.png\') sleep(10) browser.close()
详细文档:
https://playwright.dev/docs/api/class-android
弱网测试工具-charles
简介:
1、支持SSL代理。可以截取分析SSL的请求。
2、支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
3、支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
4、支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
5、支持重发网络请求,方便后端调试。
6、支持修改网络请求参数。
7、支持网络请求的截获并动态修改。
8、检查HTML,CSS和RSS内容是否符合W3C标准。
下载:https://www.charlesproxy.com/download/
使用:
关于网速的选择:
Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(最大传输单元)
3G:300k-2Mbps左右
2.5G(GPRS)一般在100kbps
2G(GSM)一般在5-9kbps
手机限速:
输入端口号和勾选启用代理
查看本地连接的网络ip
设置完成后会在本机默认启动代理并配置地址和端口,如果没有配置可以手动进入电脑的代理设置
这里的网址要设置127.0.0.1把本地ip设置代理
负载测试工具-locust
简介:locust是一款完全基于事件的负载测试工具,做性能测试使用的协程方式,有webui图形界面、无图形界面等多种运行方式。
安装:pip install locust
查看locust版本:locust -V
创建locustdemo.py文件
注意:从locust1.0开始,HttpLocust改为HttpUser,task_set改为tasks
有图形界面模式,在命令行输入:locust -f locustdemo.py
第一行输入总用户数量,第二行输入每秒增加的用户数量
测试结果:
Type:请求类型,即接口的请求方法;
Name:请求路径;
requests:当前已完成的请求数量;
fails:当前失败的数量;
Median:响应时间的中间值;
Average:平均响应时间,单位为毫秒;
Min:最小响应时间,单位为毫秒;
Max:最大响应时间,单位为毫秒;
无图形界面模式:
在没有Web UI的情况下运行locust 可以打开cmd 通过使用--headless参数
locust -f locustdemo.py --headless -u 100 -r 20 -t 1m --host=https://www.baidu.com --csv=demo
--headless 用无图形界面模式
-u 指定运行的最大用户数
-r 指定每秒生成用户数
-t 指定总共运行时长
--host 指定被测服务器域名
--csv 指定输出结果到csv文件的前缀