自动化测试
文章平均质量分 93
介绍pytest测试框架、接口测试、UI自动化测试、性能测试等自动化测试技术
测试开发小记
欢迎关注微信公众号【测试开发小记】,分享测试开发相关技术笔记,包括Python、测试工具、自动化测试、数据库、Linux、持续集成等
展开
-
Windows GUI自动化控制工具之python uiAutomation
对 Windows GUI进行自动化控制的工具有很多,比如等,UI Automation API是微软提供的自动化框架,可在支持 Windows Presentation Foundation (WPF) 的所有操作系统上使用,支持的应用类型更多。本文介绍封装了UI Automation API的Python模块的使用方法。原创 2023-05-24 16:00:00 · 7010 阅读 · 0 评论 -
Windows远程执行进程工具psexec和wmiexec介绍
在自动化测试或者自动化工具开发中,通常需要向其它电脑或者服务器发送指令,比如Windows发送命令到Linux服务器开启某个服务进程,或者读取状态信息,我们可以使用ssh协议实现。如果Windows主机需要发送命令到局域网内的其它Windows电脑要如何实现呢?在网络安全中称为横向移动的内网渗透方法可实现远程执行命令,横向移动工具有很多,本文介绍psexec和wmiexec这两个工具如何实现远程执行进程。原创 2023-05-08 08:00:00 · 3788 阅读 · 0 评论 -
性能测试工具 IxChariot:Tcl脚本调用方法介绍
IxChariot API支持使用C语言和Tcl脚本来驱动IxChariot跑流,我们可以通过IxChariot API来创建、执行、保存和提取测试结果。原创 2023-04-24 07:26:09 · 5195 阅读 · 4 评论 -
浅谈自动化测试
从事自动化测试工作有一段时间了,今天来简单聊聊。目录软件开发模式测试金字塔中的自动化结语我们现在处于信息化时代到智能化时代的转型阶段,加上去年疫情的关系,数字经济迅速发展,比如远程教育、远程办公,网红经济等。各行各业开始数字化转型,国家互联网信息办公室发布的《数字中国发展报告(2020年)》指出,我国数字经济总量跃居世界第二,软件业务收入从2016年的4.9万亿元增长至2020年的8.16万亿元。数字产业化和产业数字化离不开软件的支持,现在技术更新迭代很快,企业要满足新消费群体需求,占领市场,必须不断原创 2022-01-04 21:35:04 · 821 阅读 · 0 评论 -
Web自动化测试之playwright:概述
playwright是由微软开发的Web UI自动化测试工具, 支持Node.js、Python、C# 和 Java语言,本文将介绍playwright的特性以及它的简单使用。目录playwright特性安装命令行工具脚本录制打开网页截图同步和异步API浏览器浏览器上下文多页面断言playwright特性playwright具有以下特点:一、支持所有主流浏览器支持所有主流浏览器:基于Chromium内核的Google Chrome 和 Microsoft Edge浏览器), WebKit内核的A原创 2021-11-02 20:14:43 · 4822 阅读 · 0 评论 -
iOS APP自动化:predicate定位
在iOS APP自动化测试中,最基本的操作就是元素定位了。与Android APP自动化测试一样,iOS也支持 ( XCUITest 或 UIAutomation测试框架) 使用属性值定位,比如id、className等元素属性,然而,有时候属性值并不是唯一的,appium、facebook-wda等框架也封装了XPath定位方法,使用XPath和属性值定位方法基本可以定位到99%的元素。但是在性能方面,XPath的定位速度相对较慢,我们可以选择iOS特有的定位策略: predicate 和 class c原创 2021-09-17 09:55:35 · 1990 阅读 · 0 评论 -
Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium
tidevice + WDA + facebook-wda / appium在Windows上构建iOS APP自动化测试环境原创 2021-08-10 20:37:31 · 11829 阅读 · 23 评论 -
Android手机管理平台搭建:STF和atxserver2
STF(Smartphone Test Farm)是一个Android手机设备管理平台,通过在浏览器上远程调试智能手机、手表和其它设备,一般用于远程管理、调试、监控多个设备。atxserver2移动设备管理平台支持支持Android和iOS,它也使用到了STF。原创 2021-08-04 07:26:28 · 2692 阅读 · 2 评论 -
App自动化测试工具Uiautomator2
python UIAutomator2是一个可以使用Python对Android设备进行UI自动化操作的库,底层基于Google UiAutomator(Java库)。python UIAutomator2原理是在手机上使用http rpc服务将UiAutomator中的功能开放出来,然后再将这些http接口封装成Python库。本文记录一下它的使用方法。原创 2021-07-16 07:21:38 · 4523 阅读 · 5 评论 -
App自动化测试工具Airtest
AirtestProject是由网易游戏推出的一款跨平台的UI自动化测试框架,主要是面向游戏的UI自动化测试,比如Unity3D、cocos2dx-\*游戏框架,也支持Android原生app、iOS app、微信小程序的UI测试。本文主要介绍如何使用AirtestProject进行Android APP自动化测试。原创 2021-07-06 21:28:30 · 3711 阅读 · 1 评论 -
Pytest插件开发
目录pytest插件介绍pytest的三种插件pytest的hook函数pluggy插件系统pytest插件:中文编码添加命令行参数打包发布1、创建包文件2、打包3、测试打包文件4、发布包参考资料Pytest测试框架功能非常多,它其实就是由一组插件组成的,具有大量的插件,可以通过插件来扩展、定制功能,能满足大部分的测试需求。本文介绍pytest插件的开发方法,帮助更好的理解pytest测试框架。pytest插件介绍pytest的三种插件pytest插件通过hook函数来实现,pytest主要包括以下原创 2021-04-24 16:27:38 · 1445 阅读 · 3 评论 -
Selenium Grid:在多个主机上并行执行自动化脚本
目录Selenium Grid架构Selenium Grid使用1. 下载2. 启动hub3. 启动node4. 编写示例脚本参考资料Selenium Grid是selenium提供的一个分布式测试工具,将自动化脚本发布到多个物理机或者虚拟机(跨平台、跨浏览器)上执行,通过一个中心节点来控制多个设备,也就是在中心节点(hub)上运行测试,在其它节点(node)上执行,实现selenium的并行执行。除了可以在多个设备上运行测试脚本以外,也可以实现多浏览器兼容性测试。它本身不提供多线程并发执行,需要结合多进原创 2021-04-10 10:49:53 · 2046 阅读 · 0 评论 -
Nmap扫描工具介绍
目录Nmap简介及安装Nmap 特性Nmap安装centos7WindowsNmap命令扫描单个主机扫描多个主机隐秘扫描(Stealth scan)版本扫描操作系统探测端口扫描读取文件扫描扫描日志NSE脚本NSE脚本类别NSE脚本示例discoveryauthbruteZenmap可视化总结Nmap (Network Mapper) 是在渗透测试中常用的扫描工具,可用于扫描网络中的 IP 地址和端口,并检测已安装的应用程序。无论是作为网络安全工具还是黑客工具,Nmap 是一个很强大的工具,在《黑客帝国2》原创 2021-03-27 14:47:32 · 2523 阅读 · 0 评论 -
Selenium Webdriver 架构
系列文章目录1、Selenium Webdriver 架构2、Selenium Web元素定位方法3、Selenium Web元素操作4、Web自动化测试:xpath & CSS Selector定位5、Selenium ActionChains、TouchAction方法6、Selenium switch_to方法7、Selenium Select下拉框8、Selenium多浏览器测试9、Selenium执行JavaScript脚本10、selenium/appium 等待方式原创 2021-03-11 22:10:59 · 1114 阅读 · 0 评论 -
JMeter性能监控系统:Jmeter + InfluxDB + Grafana
目录性能监控系统JMeter性能监控平台组成JMeter安装InfluxDB安装Grafana安装性能监控平台部署部署 InfluxDB部署 GrafanaJMeter性能监控JMeter配置监听器配置Grafana查看InfluxDB数据库JMeter性能测试完成后,可以查看性能报告(参考JMeter性能测试:JMeter多用户并发模拟及压测结果分析),如果想查看实时的性能,可以搭建一个性能监控平台。本文介绍如何搭建JMeter性能测试的性能监控系统。性能监控系统JMeter性能测试报告呈现的数据是原创 2021-03-03 18:49:22 · 1145 阅读 · 0 评论 -
Postman安装与使用
目录安装发送请求发送Get请求发送Post请求断言变量添加 Cookie参数传递用例集代码导出数据驱动Postman是可以用于API调试的工具,支持各种请求类型: get、post、put、patch、delete 等,可以用来模拟HTTP请求,测试API接口功能。安装官网地址:https://www.postman.com/http请求响应测试接口:https://httpbin.testing-studio.com/也可以自己本地搭建,GitHub地址:https://github.com/原创 2021-02-28 22:25:39 · 689 阅读 · 0 评论 -
JMeter性能测试:JMeter多用户并发模拟及压测结果分析
目录JMeter设置JMeter线程组JMeter压测实例View Results TreeAggregate Report命令行方式执行压测jtl文件解析JMeter多用户并发模拟JMeter设置多用户并发数的多少与计算机内存有关,设置 jmeter.bat (Windows) 或者 jmeter.sh (Linux):Windows设置:编辑jmeter.bat文件,设置HEAPLinux设置:编辑jmeter.sh文件,设置变量,JVM_ARGS="-Xms1g-Xmx2g"以Windo原创 2021-02-26 20:45:26 · 5213 阅读 · 0 评论 -
selenium/appium 等待方式介绍
目录HTML 页面加载强制等待隐式等待显式等待总结UI自动化测试过程中,执行某个动作后,页面元素的加载(ajax动态加载)需要一定的时间,selenium WebDriver提供了几种等待方式,Appium也继承了WebDriver API,所以selenium和appium 等待的实现方式相同。下面介绍WebDriver的等待方式。HTML 页面加载HTML 页面加载、解析过程:浏览器向服务器发起请求,浏览器先查询本地(浏览器或者本机)DNS缓存,如果没有,向DNS 服务器发起 域名解析请求浏原创 2021-02-24 22:43:14 · 861 阅读 · 0 评论 -
JMeter性能测试:JMeter安装及脚本录制回放
目录性能测试基本概念为什么要做性能测试?什么是性能测试?常见性能测试工具JMeterJMeter安装-windowsJMeter插件安装JMeter脚本录制除了功能测试以外,服务端的性能测试也非常重要,比如产品功能测试通过,那么在大负载的情况下,可能会导致服务器崩溃,影响用户体验。虽然不同服务对负载要求不同,但性能测试还是很有必要的。本文简要介绍性能测试相关知识,然后介绍如何使用JMeter来进行性能测试。性能测试基本概念为什么要做性能测试?模拟真实的用户场景,提前发现并修复问题。最小化成本:新原创 2021-02-23 20:04:59 · 1711 阅读 · 4 评论 -
Python Scapy 报文构造和解析
目录下载安装Scapy 的使用DHCPv6报文构造发送报文1. 只发不收2. 发且收报文过滤Scapy是一款强大的交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。能灵活地构造各种数据包、发送数据包、包嗅探、应答和反馈匹配等功能。下载安装官网:https://scapy.net/github地址:https://github.com/secdev/scapy官方文档:https://scapy.readthedocs.io/en/latest/pip install sc原创 2021-02-19 11:38:03 · 9828 阅读 · 6 评论 -
mitmproxy 代理工具介绍:rewrite和map local实现
在接口测试中,会用到抓包工具或者代理工具,常用代理工具包括charles、 burpsuite、 fiddler、mitmproxy等,ssh -D参数 可实现socks5代理。网络嗅探工具可以使用tcpdump 和 wireshark。Charles工具可以实现mock测试(参考**《接口测试代理工具charles mock测试》**),如果要自动化实现这些功能,mitmproxy工具是个不错的选择。本文主要内容包括简要介绍mitmproxy代理工具、mitmproxy安装、SSL 证书安装以及实现和原创 2021-02-14 18:03:10 · 1378 阅读 · 0 评论 -
接口测试框架Requests
python内置了HTTP库 urllib,可以用于发送http请求。基于Python的第三方库Requests是对urllib的再次封装,相比urllib更加简洁易用。Requests库不仅用于接口测试,还用在Python爬虫、量化交易等。本文介绍Requests库的使用方法。RequestsHTTP接口测试涉及到以下几个方面:构造请求方法:get、post、put、 delete、head …构造请求体:form、json、xml、 binary分析响应结果:status code、 res原创 2021-02-12 16:12:49 · 923 阅读 · 1 评论 -
接口测试代理工具charles mock测试
charles代理工具支持分析http/https协议,其中https包需要安装SSL证书(参考**《charles SSL证书证书安装》**)。charles可用于mock测试,拦截请求与响应,支持对请求和响应进行动态修改,还可用于模拟慢速网络。本文介绍charles 的mock测试方法。环境准备首先需要安装Charles 的 CA 证书,安装方法参考**《charles SSL证书证书安装》**。手机(或者模拟器)配置charles代理手机安装雪球APP确认charles可以抓取雪球APPh原创 2021-02-12 12:08:36 · 1187 阅读 · 0 评论 -
cURL工具介绍及简单使用
curl命令是个功能强大的网络工具,可用来请求 Web 服务器,支持通过FTP、FTPS、HTTP、HTTPS、SMTP、Telnet、TFTP等协议,底层使用的是 libcurl 库。可用于文件上传、下载,还可以用来模拟客户端请求,抓取网页、网络监控等。本文介绍使用curl来发送请求。curl安装Windows:下载解压:https://curl.haxx.se/download.html加入环境变量curl -V 查看版本信息:Linux:yum install curl # Cen原创 2021-02-04 21:08:45 · 15908 阅读 · 2 评论 -
接口测试简介及 Web 服务架构
API (Application Programming Interface,应用程序接口) 是支持两个相互独立的软件系统之间进行通信和数据交换的计算机接口,它定义了两个软件系统之间可以发出什么请求、如何发出请求、可用的数据格式等。接口测试什么是接口测试?接口测试是一种验证应用程序接口(API)的软件测试类型,目的是检查系统组件间接口的功能、可靠性、性能和安全性。在 API 测试中,不使用标准的用户输入(键盘)和输出,而是使用软件向 API 发送调用,获取输出,并记录系统的响应。API 测试与 GUI原创 2021-01-28 21:04:58 · 560 阅读 · 0 评论 -
AppCrawler自动遍历测试
AppCrawler 是由 seveniruby开源的一个自动遍历测试工具,谷歌有一个叫App Crawler 的遍历工具。AppCrawler具有很大的灵活性,可以自由控制测试页面,控件类型,测试深度等,且支持Android和IOS应用测试。AppCrawler开源地址:https://github.com/seveniruby/AppCrawlerappcrawler基于appium开发,底层引擎还引用了 adb、 macaca、 seleniumAppCrawler安装AppCrawler工具原创 2021-01-28 07:33:02 · 5567 阅读 · 1 评论 -
自动遍历测试之Monkey工具
某些移动APP业务线多,流程复杂,且产品迭代速度快,在回归测试中涉及到大量用例,工作量大,解决这个问题的一个可行方法是使用自动遍历测试,可以降低用例维护成本,尽可能的自动化覆盖回归业务。自动遍历工具google android原生monkey、 app crawler百度 smartmonkey腾讯 newmonkeysmart_monkeymacaca的NoSmoke头条的 zhangzhao maximseveniruby appcrawler下面介绍android原生monkey原创 2021-01-24 21:52:11 · 1883 阅读 · 2 评论 -
Android WebView测试
混合应用中包含 Web 视图的应用,在 App自动化测试 | Appinum 介绍及环境安装 中介绍了appium支持WebView测试,本文将分享Android 混合页面的测试方法。WebView测试环境准备手机端被测浏览器:iOS:SafariAndroid:Chrome,Chromium,Browser (自带浏览器)PC端安装 Chrome浏览器(或chromium),可以访问https://www.google.com下载手机浏览器webview版本对应的 driver原创 2021-01-22 07:33:21 · 1769 阅读 · 1 评论 -
Appium控件交互
与Web元素操作一样(Web自动化测试 | 元素操作),定位到APP控件元素后,可以对控件进行一系列的操作,实现与APP就交互,比如点击、文本输入、元素属性获取等。元素操作元素常用操作方法点击方法 element.click()输入操作 element.send_keys(“appium”)设置元素的值 element.set_value(“appium”)清除操作 element.clear()Python测试实例安装ApiDemos-debug.apk,下载地址:https://gi原创 2021-01-20 21:53:22 · 909 阅读 · 0 评论 -
Appium元素定位(二):UiAutomator定位
UiAutomator定位用于Android APP的元素定位,使用UI Automator API(UISelector类)来搜索特定元素。 Appium将Java代码作为字符串发送到服务器实现对应用程序的交互。UiAutomator是android的工作引擎,所以定位速度快。缺点是语法表达式复杂,容易写错。可参考官方文档:https://developer.android.com/reference/android/support/test/uiautomator/UiSelector下面将介绍U原创 2021-01-18 20:48:48 · 4037 阅读 · 1 评论 -
Appium元素定位(一)
APP元素定位方式与Web元素定位方式大体相同,APP自动化测试中最重要的一部分是对元素进行定位,实现对APP的控制交互。Appium常用的定位方式有Accessibility ID、Class name、ID、Name、XPath、Android UiAutomator(UiAutomator2)等。ID定位使用resource-id属性定位,iOS中使用name属性。elem = driver.find_element_by_id("com.xueqiu.android:id/enter_sto原创 2021-01-17 20:35:17 · 1549 阅读 · 2 评论 -
App控件定位:Android 控件介绍及元素定位方法
本文将分享Android相关基础知识和Android APP控件定位工具的使用方法。Android基础知识Android布局Android是通过容器的布局属性来管理子控件的位置关系(iOS去掉了布局的概念,直接用变量之间的相对关系完成位置的计算),把界面上所有的控件根据他们的间距的大小,摆放在正确的位置。布局是一种可用于放置很多控件的容器,通过多层布局嵌套完成一些比较复杂的界面。Android布局有LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout原创 2021-01-14 07:29:01 · 6780 阅读 · 3 评论 -
Appium 介绍及环境安装
Appium是一个可用于测试iOS、 Android操作系统和Windows桌面平台原生应用,移动网页应用和混合应用的自动化测试框架。原生应用(Native App):用 android、iOS或者Windows SDK编写的应用移动网页应用(Web App):通过手机浏览器访问的网页应用,比如iOS中 safari应用,Android上的Chrome应用或者内置浏览器应用,不会占用手机的存储空间。混合应用(Hybrid App):同时具备Native App和Web App的特性,一种原创 2021-01-13 07:32:11 · 3683 阅读 · 0 评论 -
Pytest测试框架(五):pytest + allure生成测试报告
Allure 是一款轻量级、支持多语言的开源自动化测试报告生成框架,由Java语言开发,可以集成到 Jenkins。 pytest 测试框架支持Allure 报告生成。pytest也可以生成junit格式的xml报告和HTML报告,命令如下:pytest test_demo.py --junitxml=report.xmlpytest test_demo.py --html=report.html #需要安装插件:pip install pytest-htmlAllure 报告更加灵活美观,本文介原创 2021-01-08 07:13:30 · 23448 阅读 · 4 评论 -
Pytest测试框架(四):pytest 参数化用例
在 Pytest测试框架(三):pytest fixture 用法 中介绍了pytest.fixture()可以参数化fixture函数,@pytest.mark.parametrize 可以为测试方法或者测试类定义多组变量。本文将分享使用@pytest.mark.parametrize 实现参数化用例。使用方法@pytest.mark.parametrize(argnames, argvalues)argnames:参数化变量名,可以是string(逗号分割) 、list 和 tuple类型原创 2021-01-05 22:26:16 · 2946 阅读 · 0 评论 -
Pytest测试框架(三):pytest fixture 用法
xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进。pytest fixture为测试准备一个良好的测试环境,测试函数使用的每个 fixture通常有一个参数(以 fixture 命名),测试函数通过参数访问它们。本文将介绍pytest fixture的一些基本用法。@pytest.fixtureimport pytest@pytest.fixture()def login():原创 2021-01-03 19:28:29 · 3956 阅读 · 5 评论 -
Android ADB原理及常用命令
Android调试桥(ADB, Android Debug Bridge)是一个Android命令行工具,包含在SDK 平台工具包中,adb可以用于连接Android设备,或者模拟器,实现对设备的控制,比如安装和调试应用。和Appium一样,adb也是基于C/S架构实现的。一、ADB运行原理adb分为三个部分:PC上的adb client,adb server和手机(也可能是PC上的模拟器)上的adb daemon。这是一个多多连接的设计。即一台PC可以连接多个手机,一台手机也可以连接多个PC。原创 2021-01-02 17:08:31 · 2087 阅读 · 2 评论 -
Pytest测试框架(二):pytest 的setup/teardown方法
PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性。pytest的setup/teardown方法包括:模块级别(setup_module/teardown_module)、函数级别(setup_function/teardown_function)、类级别(setup_class/ teardown_class)、方法级别(setup_method/teardown_methond或者setup/teardown原创 2021-01-02 09:18:35 · 13780 阅读 · 7 评论 -
Pytest测试框架(一):pytest安装及用例执行
PyTest是基于Python的开源测试框架,语法简单易用,有大量的插件,功能非常多。自动检测测试用例,支持参数化,跳过特定用例,失败重试等功能。安装pip install -U pytest # 安装pytest --version # 查看版本pytest -h # 查看帮助信息用例识别pytest识别文件名为test_.py或者_test.py的测试文件测试文件中可以在Test*类中写测试用例(测试用例以test_*开头,并且测试类不能有__init__方法)不在Test*类中的原创 2021-01-01 15:00:38 · 4127 阅读 · 1 评论 -
Selenium执行JavaScript脚本
JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页。可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在Web页面中进行js交互。那么js能做的事,Selenium应该大部分也能做。WebDriver是模拟终端用户的交互,所以就不能点击不可见的元素,有时可见元素也不能点击。在这些情况下,我们就可以通过WebDriver 执行JavaScript来点击或者执行页面元素。本文将介绍如何使用WebDriver执行JavaS原创 2020-12-30 22:57:49 · 1527 阅读 · 0 评论