自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TestingShare

见证学习过程

  • 博客(43)
  • 收藏
  • 关注

原创 appium 实战问题 播放视频时无法定位到元素

在做UI自动化时,有播放详情页的用例,但是发现视频在播放的时候无法定位到元素或者很慢,了解到appium在动态的页面实时获取布局元素导致定位变慢。所以只能将视频暂停在操作元素,点击到暂停按钮又是个问题,通过adb 点击坐标的话,不同设备就会成为问题。

2024-07-09 17:12:19 302

原创 atx-server2小牛试刀

计划UI自动化脚本平台话,可制定任务去执行也可以单独录制用例进行调试。如果使用服务器单条运行用例的话,不方便观察运行,只能从结果日志中查看运行情况。就想是否可以直接web页面观察,就找到了atx-server2项目。主要原因是项目中的minicap.so只支持到版本11,高版本就不支持。导致不会有截图发送给web。但是部分手机在连接到设备上,web页面不显示手机界面。项目是python代码非常方便部署本地。,并试了下可以完成。

2024-06-25 18:26:51 268

原创 Appium系列(2)元素定位工具appium-inspector

如实现移动端自动化,依赖任何工具时,都需要针对于页面中的元素进行识别,通过识别到指定的元素,对元素进行事件操作。当看到这个界面,页面显示的和你手机上的一致,说明启动成功了,没有问题,就可以定位元素操作了。识别元素的工具为appium官网提供的appium-inspector。这里需要启动appium服务后,才能启动这个。安装很简单,一直下一步,直到结束就可以了。我这里是mac电脑需要下载dmg文件。这里的内容跟脚本启动的一致就可以了。

2024-05-27 13:59:03 450

原创 brew安装包安装

使用命令行安装总会出现链接超时的情况,不得已使用安装包安装,安装过程也是一条龙操作,非常简单。如果出现 command not found 字样请检查环境变量。执行brew命令,查看有信息,表示安装完成。一直点继续,知道最后关闭。4、命令行验证安装完成。

2024-05-06 16:50:01 508

原创 【Appium问题】you could also try to enable automated chromedrivers download as a possible workaround

因为需要用到chromdriver,如果用过selenium的话就知道,浏览器版本对应的chromdriver版本有很多,需要找到对应的版本。电脑访问地址:chrome://inspect/#devices,就能看到内核版本时多少了。在启动capabilities配置中,增加参数。下载后解压,获取到文件的路径。保证手机与电脑USB连接正常。

2024-03-14 14:40:47 390

原创 【Appium问题】 does not have permission android.permission.CLEAR_APP_USER_DATA to clear data

进入开发者模式,需要开启禁止权限监控,就可以了。配置好环境和appium后首次启动时报错。百度了下是oppo手机的问题导致。

2024-03-07 14:39:40 489

原创 【Appium问题】Error: Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported

appium环境准备好后,启动时报错:Error: Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported。我这里是mac电脑,打开~/.base_profile文件,输入如下内容。关闭当前文件,执行source ~/.base_profile 就可以了。我这里是通过android studio 安装的sdk。未准备好androidsdk环境,需要配置环境变量。下载一个sdk,找到对应目录复制下。

2024-03-07 14:39:17 1025

原创 Appium系列(1)安装启动Appium

1、先检查当前驱动情况 通过 appium driver list 进行查看。这里使用python代码进行驱动,需要通过pip安装appium第三方包。2、通过appium driver install 进行安装。当然再启动的过程也遇到了很多问题,记录在。安装不成功请检查node 版本是否正确。连接设备就可以启动啦。

2024-03-06 15:22:27 854

原创 【Appium问题】Make sure the application under test does not crash and investigate the logcat output.

appium首次启动的时候会给设备安装两个uiautomator的包的。如果缺少了哪一个,自己手动进行安装,再次启动appium就可以了。查看最近的报错内容,找了些方法不好用。顺着报错继续向上面找到了这个。启动appium报错。

2024-03-06 14:57:59 469

原创 【Appium问题】每次启动appium都会安装一次uiautomator

在配置文件capabilities 中增加参数skipServerInstallation=True。每次启动appium,都需要安装一次uiautomator2比较麻烦。

2024-03-06 14:16:30 657

原创 Jmeter系列(5)线程数到底能设置多大

然后在搜索的过程中,会发现很多问题是,jmeter运行过程中卡死,内存溢出等问题,这类问题基本都是运行jmeter机器的内存,占用较高,超过了jmeter设置的内存上限,导致内存溢出。元空间是Java 8及以后版本中用于存储类的元数据(如类的结构、方法和字段的信息等)的内存区域。注意⚠️:这里的大小也并非随意设置,推荐设置内存50%以下。eg:16G内存,推荐设置不超过8G。当JVM启动时,它会尝试分配最小可用内存,这里设置的是这个最小值。当JVM启动后,它将尝试使用最大可用内存,这里设置的是这个最大值。

2024-02-29 18:04:11 1548

原创 Jmeter系列(4) 线程属性详解

线程属性线程组是配置压测策略的一个重要环节线程组决定了测试执行的请求数量线程数在这里线程数相当于一个虚拟用户每个线程数大约占内存1M特别注意⚠️ 单台机器最大线程数不要超过1000,不然可能会造成内存溢出Ramp-Up时间所有线程在多长时间内全部启动完成(eg:线程数100,ramp-up设置10s,那么每秒钟启动100/10=10个线程)如果设置为0,就是一次全部启动,表示瞬时的压力设置过大和过小都不好,怎么平衡这个点呢?就要根据各自服务器情况决定设置循环次数表示1

2024-02-27 14:43:56 1108

原创 Jmeter系列(3)发起一次请求

用来控制线程数量和循环次数等相关内容,后面会详细介绍,这里只是简单添加验证一个请求的过程步骤。接口请求的话,最重要的一环就是请求路径和参数了,需要再这里进行添加。用Jmeter进行一次请求的过程,需要几个步骤呢?再做接口测试,或者性能压测时,离不开这三个步骤。点击线程组右键,添加->取样器->HTTP请求。看下结果树里是否有请求成功的状态和返回结果呢?现在就打开jmeter看下如何创建一个请求吧。监听器有很多种,这里先简单展示下结果树。发起一次请求的目录大概就是这个样子。一次简单的发起请求的流程就是这样。

2024-02-23 14:20:10 857

原创 Jmeter 学习目录

Jmeter 所有内容均以学习为主输出内容,按照最小单位和基础进行输出。如果有看不懂,或者有不明确的内容,欢迎大家留言说明。

2024-02-22 16:24:13 789

原创 Jmeter系列(2)目录介绍

在学习Jmeter之前,需要先对工具的目录有些了解,也会方便后续的学习。

2024-02-22 15:31:33 684

原创 Jmeter系列(1)Mac下载安装启动

Source 是源代码版,你需要自己编译成可执行软件,然后才能使用。官网下载地址:https://jmeter.apache.org/Binaries是可执行版,直接下载解压就可以拿来用的。注意⚠️:使用jmeter需要有java环境。在mac电脑上,可执行文件是以.sh结尾的。会看到这里有两个版本,那么有什么区别么?下载好后解压,进入到bin目录。

2024-02-22 11:46:43 930

原创 vue项目引入elementui样式组件05

vue 中引入elementui 样式库

2023-10-30 17:31:51 159

原创 vue运行项目代码检查报错Use // eslint-disable-next-line to ignore the next line,Use /* eslint-disabl

在vue.config.js文件中写入。Use // eslint-disable-next-line to ignore the next line,Use /* eslint-disabl

2023-10-30 17:04:24 292

原创 项目开发环境准备02

项目开发前,需要准备好环境和开发工具,这里不多介绍说明,只说下个人习惯使用的开发工具。

2023-10-29 17:42:32 105

原创 pycharm创建Django项目

在编辑器中命令行,执行python manage.py runserver就可以了。2、请自行去pycharm 官网下载安装软件。1、安装python,并配置环境变量。创建好后,可以看到对应的目录结构。

2023-10-29 17:24:35 72

原创 jmeter 如何设置成中文

2023-10-20 13:31:46 35

原创 Java 中MyBatis @SelectProvider注解使用多条件筛选

java使用不太熟悉,根据公司的项目写的一些接口,看到大部分查询数据中的操作都是用注释的方式去写的,也跟着照抄了。不久后,就需要使用到多条件筛选了,注释的方式暂时无法满足,百度了下注释的方式写的过于麻烦,需要在类中写个方法,返回一个sql的拼接字符就可以搞定了。就找到了@SelectProvider 这个。

2023-05-09 15:39:30 948

原创 vue项目区分环境打包

在本地测试的时候,需要使用本地的接口地址,build打包后需要使用线上接口地址,每次都需要手动更改,非常麻烦,有时候还可能忘记更改,将本地的接口地址打包上线(非开发人员哈,开发才不会犯这样的错误)npm run serve 是本地启动,npm run build 是打包。文件名为.env.test;.env.prod 通过名称进行区分;当执行对应的命令时,查找到关键字mode 对应文件名,找到配置项目。#####2、在文件中进行接口根路径配置。######3、在对应位置写入引用的变量。

2023-05-06 17:29:15 293

原创 django批量插入数据bulk_create _

django项目有个接口是插入多条数据,大概是50条数据吧,大概用了3s左右,10条数据为一组,插入不同的数据表中。目前一直是使用的create的方法,百度了解到有一种批量插入的方法bulk_create。3s对于这个接口来说是比较频繁的操作,所以3s是不能容忍的。使用之后,接口响应时间稳定在1s左右。

2023-05-04 19:37:49 758

原创 iView 中DatePicker日期选择器 v-model不生效的情况

iView 时间选择器 样式库使用问题

2023-02-23 10:24:03 1141

原创 Mybatis Plus基础09 条件查询allEq(多用于筛选条件查询)

学习目标:allEq的基本使用学习产出:1、

2022-05-06 09:53:32 1486

原创 Mybatis Plus基础08 配置日志

学习目标:mybatisplus查询语句增加日志显示学习产出:在学习的过程中,不知道自己写的查询语句是通过怎样的sql查询的,不增加日志是根本看不出来效果的。比如这样:只返回了一个空的数据,不知道是真没有,还是自己的查询条件写的有问题。就需要日志的帮助,日志可以看到sql的语句的具体实现是怎么样的。配置只需要在配置文件中写入mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

2022-05-06 09:15:45 290

原创 Mybatis Plus基础07 type-aliases-package配置(实体对象扫描包)

学习目标:简化操作 配置 type-aliases-package实体对象扫描包学习产出:1、为什么配置这个?简单的说就是简化一个操作步骤简化哪里的操作:简化xml文件中resultType中指定路径配置2、哪里配置?在项目的application配置文件中//配置指定实体类文件路径,在使用的时候,会扫描这个文件下的内容mybatis-plus.type-aliases-package=com.example.demo.domain配置后就可以省去前面的路径,直接写类名.

2022-05-05 08:43:03 13857

原创 Mybatis Plus基础06 mapperLocations配置(指定Mapper.xml文件路径)

学习目标:配置mapperLocations学习产出:1、为什么配置这个?截止目前为止,所有的数据操作都是依靠着BaseMapper中封装的方法来完成增删改查操作。有些查询比如多表查询,是无法满足的,还是需要自己去写sql,就需要用到xml文件。这个配置就相当于配置了环境变量,可直接访问到对应目录下的所有xml文件。2、在哪里配置?项目中application配置文件中//可以直观的看到mybatis下所有的xml文件mybatis-plus.mapper-locations=cl

2022-05-05 08:26:57 5691

原创 Mybatis Plus基础05 select查询操作

学习目标:学习内容:提示:这里可以添加要学的内容例如:搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如: 技术笔记 2 遍 CSDN 技术博客 3 篇 习的 vlog 视频 1 个...

2022-05-05 08:12:30 1352

原创 Mybatis Plus基础04 delete删除操作

学习目标:mybatis plus 的删除操作学习内容:delete使用学习产出:1、deleteById@Test void deleteTest(){ //返回一个int类型,操作成功的数量,0代表未搜索到未执行成功 System.out.println(userDao.deleteById(1)); }2、delete方式1:QueryWrapper@Test void deleteTest2(){ QueryW

2022-05-04 18:59:37 9530

原创 Mybatis Plus基础03 更新update操作

学习目标:Mybatis Plus 更新数据操作学习内容:update的几种使用学习产出:1、根据ID更新 updateById @Test void updateTest(){ User user = new User(); user.setId(19); //查询id的条件 user.setRole("updateTest"); //更新字段的值 System.out.println(userDao.updat

2022-05-04 16:36:29 6726

原创 Mybatis Plus基础02 新增insert操作

学习目标:使用mybatis plus 新增insert插入数据学习内容:插入一条新数据学习产出:1、数据准备操作数据的话,需要连接数据库,在编辑器中右侧可以进行连接输入账号密码和URL就可以了连接成功显示在springboot配置文件中,连接数据库创建实体类package com.example.demo.domain;//lombok 简化实体类的包import lombok.AllArgsConstructor;import lombok.Data;impor

2022-05-04 09:55:20 4233

原创 Mybatis Plus基础01 安装使用

学习目标:Mybatis plus基本使用学习内容:1、定义介绍2、基本使用学习产出:1、定义MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。官方地址2、基本使用这里使用的springboot+mybatis plus 操作,使用 IntelliJ IDEA阿里云源:https://start.aliyun.c

2022-05-04 08:59:06 662

原创 java基础06 方法的使用

学习目标:java中方法的使用学习内容:1、了解什么是方法2、方法的定义,参数使用3、重载4、递归学习产出:1、方法的定义Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一个方法只完成一个功能。2、书写规范//定义一个方法规范//如果方法没有返回值的时候,需要使用void关键字修饰符public static void 方法名(参数1,参数2){ //代码块}//当方法需要返回值的时候,需要在代码块最后加上return 返回需要的内容pub

2022-04-26 10:39:31 581

原创 java基础05 流程控制语句

学习目标:判断语句、循环语句学习学习内容:1、if条件语句2、switch语句3、while循环语句4、for循环语句5、break、continue学习产出:1、if语句//if语法结构if(布尔表达式){ //如果布尔表达式为true 将执行的语句}else{ //为false,执行此语句}//多选择结构if(表达式1){ //满足表达式1,为true 执行代码}else if(表达式2){ //满足表达式2,为true 执行代码}else if(表达式3

2022-04-25 10:29:14 172

原创 java基础04 运算符基本操作

学习目标:理解运算符操作学习内容:1、算术运算符2、关系运算符3、逻辑运算符4、位运算符5、扩展赋值运算符6、三元运算符学习产出:1、算术运算符算术运算符:+、-、*、/、%、++、–注意:++ 和 – 的使用public class hello { public static void main(String[] args) { int a = 10; int b = 5; System.out.println(a+b)

2022-04-24 16:37:40 203

原创 java基础03 变量常量作用域

学习目标:了解变量、常量、作用域、命名规则学习内容:1、什么是变量2、作用域3、变量作用域4、命名规则学习产出:1、变量变量:就是可以变化的量!Java是一种强类型语言,每个变量都需要声明其类型。类型可以是基础类型,也可以是引用类型。变量名必须是合法标识符声明后必须以分号结尾2、变量作用域分为:类变量、实例变量、局部变量类变量:在类中声明的变量,方法外,关键字static 修饰,可直接被调用实例变量:也写在类中,方法外,不需要关键字修饰,需要实例化后,才能被调用局部变

2022-04-24 14:45:11 62

原创 java基础02 基础数据类型

学习目标:java数据类型了解在定义变量的时候,都会先给变量指定了个类型,就需要了解每种类型情况,防止定义出错学习内容:java数据类型分类什么是字节数据类型的扩展学习产出:1、java基础数据类型基础类型分为:整数类型、浮点、字符串、布尔引用类型:类、接口、数组整数类型:byte 占1个字节范围:-128 ~ 127short 占2个字节范围:-32768 ~ 32767int 占4个字节范围: -2147483648 ~ 2147483647long 占8个字节范围

2022-04-24 11:56:46 338

原创 java基础01 Hello world

学习目标:熟悉java代码运行流程学习内容:安装jdk环境超简单了解jdk的目录结构作用如何让java运行起来学习产出:1、下载jdk,配置环境变量2、创建.java文件3、编写代码public class hello{ # 创建java类,hello是类名 public static void main(String[] args){ # 修饰词 main是程序的主入口 System.out.print("hello world") #输出内容的方式 } }4

2022-04-23 17:22:13 225

空空如也

空空如也

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

TA关注的人

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