![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
自动化测试
文章平均质量分 74
chuntian_tester
路漫漫其修远兮,吾将上下而求索。
展开
-
并发和并行以及线程安全
并发:指的是任务数>CPU核数,通过操作系统的各种任务调度算法,实现多个任务"一起执行"(实际上总有些任务不在执行,因为CPU切换任务的速度非常快,看上去在一起执行而已).并发针对的是同一段时间内,有多个任务数在运行,强调同一段时间范围.并行:指的是任务数≤CPU核数,即任务真的在一起执行.并行针对的同一时刻有多个任务数在运行,强调的是同一时刻.并发与并行在CPU层面的表现:同步和异步同步:是指线程在访问某一资源时,获得了资源的返回结果之后才会执行其他操作(强调.....原创 2022-01-27 23:21:05 · 3111 阅读 · 0 评论 -
OpenSTF_Android终端设备管理平台搭建
目录1.docker 拉取相关镜像:2.启动rethinkdb(必须先启动rethinkdb)3.启动adb服务3.启动stf4.增加设备OpenSTF平台搭建好后对于终端管理及远程调试使用都是非常方便的.该平台提供web页面使用,最多支持160款设备的管理.下面介绍下如何搭建STF平台.地址:https://github.com/openstf/stf1.docker 拉取相关镜像: 1.docker pull openstf/stf:latest......原创 2021-10-23 11:26:22 · 13783 阅读 · 1 评论 -
Webview相关测试(功能+性能)
App在执行自动化测试的时候,有时候碰到webview组件,通过appium inpector或者SDK自带的uiautomatorviewer都无法定位webview组件中的元素,这个时候通常需要浏览器开发工具来协助定位.常见的3中定位方式: 1.在脚本中通过driver.getPageSource方法将整个页面中的内容下载为一个html文件,然后打开该html文件,利用浏览器的开发者工具定位. 2.模拟器中打开对应的webview页面,利用chrome devto......原创 2021-10-21 22:56:25 · 15573 阅读 · 0 评论 -
Appium实现app自动化测试
目录1.Appium设计2.Appium环境安装 1.JDK安装配置2.SDK安装 3.Appium desktop安装(appium server+appium inspector工具) 3.DesiredCapability(启动参数)设置4.Appium定位方法(appium中无css selector定位) 1.id定位 2.accessibility_id定位 3.class定位......原创 2021-10-15 00:07:52 · 26266 阅读 · 0 评论 -
frame,window,alert,文件上传切换操作总结
frame()driver.switch_to.frame()alert()driver.alert("文本")driver.switch_to.alert()window_handle()driver.switch_to.window(handle)原创 2021-10-14 00:48:14 · 15188 阅读 · 0 评论 -
cookie免登陆之java与python实现
public class cookieTest { public static WebDriver driver; @BeforeAll public static void initData() { ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("excludeSwitches", new String[]{"enable-automation".原创 2021-10-13 21:07:47 · 15260 阅读 · 2 评论 -
selenium中如何调用js
selenium提供了一个调用js的api,方便我们在selenium脚本中调用js.复用浏览器:调试时使用浏览器的--remote-debugging-port功能,可以不用每次运行脚本都启动一次浏览器1.将chrome浏览器配置为环境变量2.关闭所有浏览器3.dos中输入命令:chorme --remote-debugging-port=92224.自动化脚本中添加:ChromeOptions options=new ChromeOptions();options.s原创 2021-10-17 19:22:02 · 16668 阅读 · 0 评论 -
Actions(鼠标事件)方法列表
Actions类是seleniumd对鼠标及键盘操作的封装,即为鼠标事件和键盘事件.常见操作包括:1.click-----单击鼠标左键2.context_click-----点击鼠标右键3.click_and_hold-----点击鼠标左键不松开4.double_click-----双击鼠标左键5.drag_and_drop-----拖拽某个元素到目标位置后松开6.move_to_element-----鼠标一定到某个元素7.release-----释放,即在某个元素位置松开原创 2021-10-18 10:43:42 · 15302 阅读 · 0 评论 -
显示等待与隐式等待的用法
显示等待当页面加载很慢时,推荐使用显示等待:等到需要操作的那个元素加载成功之后就直接操作这个元素,不需要等待其他元素的加载WebDriverWait wait = new WebDriverWait(driver, 10);wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("kw")));显式等待 使用ExpectedConditions类中自带方法, 可以进行显试等待的判断。显式等待可以自定义等待的条件,.原创 2021-10-12 00:15:00 · 20777 阅读 · 0 评论 -
自动化测试中xpath和css selector元素定位语法
除了常规的By(id,name,classname,linktext,partillinktext.tagname)外,常用的还有xpath和css selector定位,当然,id,name定位底层调用的还是css selector定位,Xpath定位1. /bookstore/book[1] 选择bookstore元素中所有的book元素中的第一个book元素2. /bookstore/book[last()] 选择bookstore元......原创 2021-10-11 13:02:25 · 15686 阅读 · 0 评论 -
Selenium+Appium底层原理
Appium底层工作流原创 2021-09-26 13:40:01 · 15980 阅读 · 0 评论 -
Dockerfile 制作镜像并push至私有仓库
1.制作镜像在Dockerfile中配置好FROM和RUN2.制作镜像docker build -t image-myself . -f dockerfile_registry3.打标签docker tag image-my:latest localhost:5001/image-registry:v14.推送至仓库docker push localhost:5001/image-registry:v1......原创 2021-09-13 22:53:26 · 18385 阅读 · 0 评论 -
docker 搭建基于prometheus的监控体系
Prometheus是一个时间序列数据库。但是,它不仅仅是一个时间序列数据库。它涵盖了可以绑定的整个生态系统工具集及其功能。Prometheus主要用于对基础设施的监控。包括服务器,数据库,VPS,几乎所有东西都可以通过Prometheus进行监控。Prometheus希望通过对Prometheus配置中定义的某些端点执行的HTTP调用来检索度量标准。普罗米修斯的主要特点是: 1. 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据 2.Pro......原创 2021-09-13 00:52:21 · 17360 阅读 · 0 评论 -
docker+selenium(基于selnenium grid) 实现分布式UI自动化
Selenium Grid作用就是分布式执行测试,讲分布式之前还是要说说UI自动化的优势来突出Selenium Grid,最简单的两点解决重复执行测试、解决多浏览器兼容这是UI自动化的价值;那分布式是什么概念?简单的说就是老大收到任务,分发给手下去干;通过Selenium Grid的可以控制多台机器多个浏览器执行测试用例,分布式上执行的环境在Selenium Grid中称为node节点。所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受原创 2021-09-12 20:37:14 · 17364 阅读 · 0 评论 -
docker-compose 多容器编排
docker-compose是基于docker的由python实现的编排工具,托管于github上,使容器的操作能够批量的,可视的执行,是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用 dockerd的单机编排工具 docker-compose。1.下载docker compose https://github.com/docker/compose/releases执行命令:c......原创 2021-09-11 22:19:03 · 17991 阅读 · 0 评论 -
docker 搭建Jenkins持续集成平台
Jenkin是一个开源的CI&CD平台,提供持续集成和持续交付服务,有大量的插件来支持构建,部署,自动化等项目需求,自动化测试也可以利用Jenkins来自动构建执行,免去人工执行。1、部署JenkinsDocker Hubhttps://hub.docker.com/r/jenkins/jenkins 1.拉取docker pull jenkins/jenkins 2.运行docker run --name jenkins -p 8082:8080......原创 2021-09-11 20:41:43 · 15122 阅读 · 0 评论 -
利用xdist实现自动化测试用例并行执行
在测试行业,如果利用python作为脚本语言开发自动化测试用例,可用的可用的框架有rf,unittest,pytest等主流可供选择,个人感觉较之rf和unittest,pytest应该算是现阶段最灵活,功能最全面,扩展最丰富的框架了。不知道各位在做自动化的时候有没有遇到过用例数过多,单机执行效率不高的困扰。接下来浅谈个人对单元测试框架pytest中的并行执行插件pytest-xdist使用心得.pytest-xdist这款插件允许用户将测试并发执行(进程级并发). 我们可以通过官方文档https:原创 2021-09-04 18:40:10 · 21761 阅读 · 7 评论 -
自动化测试中的pom模型浅谈
测试活动中,实现了自动化用例编码后,总会面临深度封装的问题,在代码编辑时就应考虑到低耦合的特性,且尽量简洁,以便后期个人维护。利用POM(page object modul)模型实现实际生产中的自动化测试,是实现低耦合及可复用性的一个可行方式。pom中,我们将代码实现分层,一个项目中最基本结构有以下层次结构: 1.common 目录(公共方法的提取封装) 2.page/api 目录(对各UI页面或接口调用实现的封装) 3.cases 目录(测试用...原创 2021-09-06 18:04:57 · 24219 阅读 · 1 评论 -
docker 简介及安装使用
演示OS:centos 7 (docker适用于centos7及以上版本操作系统)1.修改yum安装源为aliyun a.进入/etc/yum.repos.d中:cd/etc/yum.repos.d b.备份原仓库文件: cd /etc/yum.repos.d/ mkdir allbak mv ./* allbak 此时 /etc/yum.repos.d/底下就没有repo文件,此时无法使用yum工具,必须配置yum源,......原创 2021-09-09 20:50:54 · 15069 阅读 · 0 评论