自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 monkey的一些参数

add shell monkey 包名 --throttle 500 1000 随机1000个事件,每个事件延迟500毫秒。指定多个包:adb shell monkey -p xxx1.xxx1.xxx1 -p xxx2.xxx2.xxx2。-v -v -v level 2,最详细的日志,包括了测试中选中/未选中的Activity信息。-v -v level 1,提供较为详细的日志,包括每个发送到Activity的事件信息。即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

2024-04-17 14:43:25 190

原创 adb无线连接手机

3、根据手机的IP连接。出现 already connected to xx.xx.xx.xx:1999。出现 restarting in TCP mode port: 1999。1、数据线连设备,查看设备。出现设备名 VH104637028。

2024-04-03 19:01:41 123

原创 Appium Inspector 展示设备当前页面

定位元素需要使用appium inspector,连接设备的时候只需要去掉appPackage、appActivity即可。

2024-03-25 17:13:45 286

原创 appium2的一些配置

appium-desktop不再维护之后,需要使用appium2。1、安装appium2命令行输入npm i -g appium。安装之后输入appium或者appium-server即可启动appium2、安装安卓/ios的驱动安卓:appium driver install uiautomator2iOS:appium driver install xcuitest查看已安装列表:appium driver list3、在appium-inspector中使用{ "a

2024-03-05 18:25:25 453

原创 appium的三种等待方式

这种方法有个弊端,就是程序会一直等到整个页面加载完成才会继续执行下一步,比如某些时候想要的页面元素早就加载完了,但是由于个别JS等资源加载稍慢,此时程序仍然等待全部页面加载完成后才会继续执行下一步,无形中加长了测试用例的执行时间。WebDriverWait(driver, 8).until(lambda x: x.find_element(By.XPATH, "//*[@text='账号密码登录']"))隐式等待是全局的,设置时间不宜过长。等待固定的时间,才会继续执行下面的代码,影响脚本的运行速度。

2024-03-05 10:56:10 332

原创 jmeter导入jmx文件报CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

jmeter导入jmx文件报CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

2022-11-27 12:28:49 1419 1

原创 【Airtest】实现UI自动化测试(一)

Airtest是基于python语言,网易团队开发的图像识别框架,主要分为airtest、poco、selenium3个框架,本节主要讲解app上的UI自动化,也就是airtest和poco。5、使用Airtest辅助窗口编辑脚本,这里尝试打开QQ阅读,点击左侧的touch,对QQ阅读图标进行"截图操作"点击左侧的Poco pause,就可以对元素进行定位了,比如这里点击QQ阅读的图标会出现该元素的属性。可以对该元素进行相应的操作,比如点击,点击run运行。自动生成点击QQ阅读的代码,点击run执行代码。.

2022-08-04 16:27:01 2378

原创 mac配置python+appium--iOS版-真机(三)

appiuminspector中执行json,如果出现UnabletolaunchWebDriverAgentbecauseofxcodebuildfailurexcodebuildfailedwithcode65,拔出USB再插上试试...,需要注意的是,必须先在Xcode中运行WebDriverAgent,再使用appium调用app。->右键-显示包内容->Contents,然后搜索。,将新打开的文件,全部复制到一个新的文件夹中。......

2022-07-16 09:11:03 2911

原创 mac配置python+appium--iOS版(二)

Xcode可以在appstore里安装,命令行中执行xcode-select--install安装CommandLineTools。由于没找到可以使用的.app结尾的文件,没完成模拟器上启动app的步骤,有好心人有可使用的包可以发我一个。双击simctl运行进程,提示进程已完成之后,在终端打开app所在的路径,并执行安装操作,如下。5、安装app,这里的app包需要以.app结尾才能装上(可以找开发要debug包)3、ios系统版本安装完成之后,进入Xcode的包内容。.........

2022-07-15 15:32:31 1039

原创 mac配置python+appium--安卓版(一)

测试iOS使用Xcode;测试Android使用android SDK我们先来看看android的配置:1、安装java、ruby、homebrew、git、nodejs、npmmac应该自带了git、ruby,只需要安装java、homebrew、nodejs、npm即可安装完成输入java -version、brew -v、node -v、npm -v出现版本号即安装成功2 、安装Android Studiohttps://developer.android.com/studio?hl=zh-cn安装完

2022-07-13 18:00:23 1803

原创 Genymotion安装apk报错解决方法

An error occured while deploying the file.This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to x86 or install an ARM translation tool in your device.使

2022-07-12 18:54:41 2576

原创 selenium4.0的一些基本用法

1、初始化浏览器、刷新、最大化、后退、前进、截图2、单个元素定位的方法selenium4使用的时候需要导入模块 from selenium.webdriver.common.by import Byfind_element(By.XPATH, "//*[@id='search']")find_element(By.CLASS_NAME, "element_class_name")find_element(By.ID,"element_id")find_element(By.NAME, "elem

2022-07-04 16:20:40 7539 3

原创 mac安装selenium

1、命令行输入pip install selenium2、下载浏览器对应的chromedriver版本,http://chromedriver.storage.googleapis.com/index.html3、下载的文件默认在Downloads下,解压之后把它移动到/usr/local/bincd Downloadsmv chromedriver /usr/local/bin4、chromedriver -v查看是否安装成功如果出现无法验证开发者,输入以下命令:xattr -d com.apple.qu

2022-07-01 15:19:53 696

原创 os.path.abspath与os.path.realpath 区别

os.path.realpath 返回的是使用软链的真实地址os.path.abspath 返回目标地址创建a.txt:touch a.txt创建a.txt的软连接:ln -s a.txt b.txt进入python编辑器

2022-06-30 10:35:41 718

原创 Jmeter-每隔5秒发送一次请求

一个线程组下有多个请求,需要每隔5s发送一次请求,想了一个笨方法来实现,如果有大佬有更好的方法欢迎补充!线程组下有登录和查询的2个接口,每隔5s执行一次登录和查询,可以这样配置:1、添加一个登录请求,在登录请求下添加一个固定定时器,设置为5s2、测试计划下设置循环次数为想要循环的次数可以看到两次请求的时间间隔是5s......

2022-06-24 18:08:22 6286 2

原创 Jmeter-Debug Sampler和http请求默认值

1、 Debug Sampler(调试取样器) 添加>取样器>调试取样器这个取样器可以查看提取到的值是否正确,比如正则表达式提取器、json提取器、Bean Shell放入变量的值。2、http请求默认值添加>配置元件>http请求默认值,配置服务器名和端口号,之后的请求就不用再填这两个信息了...

2022-06-24 11:54:31 428

原创 Charles抓取浏览器https包

1、开启Proxy > macOS Proxy2、 在电脑上安装证书Help -> SSL Proxying -> install Charles Root Certificate导出证书之后双击证书,修改为始终信任 3、修改Charles的配置:添加百度的网址,浏览器打开百度,这个时候就可以抓到https://www.baidu.com/......

2022-06-24 11:00:37 1510

原创 Postman+newman+jenkins(Mac版)

1、Jenkins中创建一个自由风格的项目构建步骤选择shell,cd到需要执行脚本目录下,使用newman命令执行脚本cd ~/Desktop/xxx/postmannewman run test.postman_collection.json -e 本机.postman_environment.json -r html2、在Jenkins中配置环境变量,系统管理>系统配置>全局属性3、vim.bash.profile文件,添加export PATH=${PATH}:/node4、构建项目即可生成测试报

2022-06-23 14:15:01 455

原创 Postman实现数据驱动

1、准备测试数据csv文件,这里我设置了请求参数和预期结果2、脚本中引用文件中的数据引入请求参数:引入文件中的断言 :方式1,使用data.列名方式2,使用pm.variables.get("key")获取列的值3、运行用例集,选择csv文件选择csv文件之后,迭代次数会自动填入与文件行数相等的数字4、json格式的文件 请求中引入:用例集运行时引用文件:...

2022-06-21 13:50:36 304

原创 Postman+Newman生成测试报告

1、安装node.js,下载地址:https://nodejs.org/en/download/安装完成之后输入node -v,返回版本号即安装成功2、安装newman:输入sudo npm install -g newman,安装成功输入newman -v查看是否安装成功3、安装newman的html报告sudo npm install -g newman-reporter-html4、导出集合,导出环境,导出后文件为json,集合、环境、测试数据放在同一个文件夹下导出集合:导出环境:5、切换到该文件夹下

2022-06-21 12:52:33 661

原创 Postman运行用例集

1、编写用例,编写断言,点击Run collection执行执行参数:执行顺序:可以拖动鼠标变更执行顺序Iterations:设置执行次数Delay:每个请求间隔的时间Data:发送请求的Data文件2、查看结果,包含成功、失败、跳过的用例...

2022-06-20 17:57:09 437

原创 Postman导入curl请求

测试过程中,开发同学可能会给到一些curl格式的测试接口,一个参数一个参数填写很麻烦还可能会写错,我们可以使用直接导入的方法:点击Import>Raw text,把请求粘贴进来即可

2022-06-20 16:57:09 1366

原创 Postman获取上一个接口的返回值

以下两种方法提取成功之后都是在全局变量中(小眼睛)查看1、Json提取器2、正则表达式提取器这里的正则表达式会返回两个值,取第二个值设置为全局变量3、下一个接口中使用{{}}引用

2022-06-20 16:37:23 2679

原创 Jmter+ant+jenkins实现接口自动化(四)

基于上一篇文章配置好的环境,已安装Jenkins的情况下:1、全局工具配置中配置jdk和ant的安装路径2、新建一个自由风格的工程3、构建环境选择ant,选择刚刚配置的ant和jdk4、构建步骤选择执行shell(Mac/Linux选择shell,windows选择window批处理命令)执行脚本:ant -buildfile /Users/xxx/Downloads/apache-jmeter-5.4.3/bin/TestCase/build.xml...

2022-06-20 12:39:21 195

原创 Jmeter+ant实现接口自动化(三)

1、来看看jmeter生成自带的测试报告进入jmeter的解压路径下的/bin,执行某个路径下的jmx文件:jmeter -n -t /Users/ss/Desktop/jmeter/参数化.jmx -l result.jtl -e -o WebReport -n: 非GUI模式执行JMeter  -t: 执行测试文件所在的位置  -l: 指定生成测试结果的保存文件,如:jtl文件格式,txt文件格式  -e: 测试结束后,生成测试报告  -o: 指定测试报告的存放位置这时查看WebReport

2022-06-18 12:31:24 1190

原创 Jmeter实现接口自动化测试(二)

尝试将测试数据放入csv文件中,实现注册功能的数据驱动:1、配置测试数据,我这里配置了请求URL、body、返回的信息2、添加>配置元件>CSV data Set Config文件名:选择对应的csv文件,csv文件需要通过excel、文本编辑器保存为csv格式,不然读取的时候可能会出现乱码。变量名称:对应csv文件里的列名忽略首行:第一列不是测试数据的话选择True分隔符:填入英文逗号是否允许带引号:选择True,测试数据是json格式的话会带引号3、配置http请求,引用文件中的URL和body4、配置

2022-06-17 16:59:16 324 4

原创 Jmeter连接mysql

1、下载连接mysql的jar包,下载地址:​​​​​​​https://dev.mysql.com/downloads/connector/j/下载成功之后解压并放到jmeter文件夹/lib中,重启jmeter即生效2、测试计划中选择下载的jar包3、添加JDBC Connection ConfigurationVariable Name for created pool:填入一个自定义的服务名,后面会用到Database URL:jdbc:mysql://host:端口号/数据库名?useUnicod

2022-06-16 18:23:17 422

原创 Jmeter实现接口自动化(一)

尝试使用jmeter实现简单的接口自动化流程:用户的增删改查1、新增用户:新增用户之前,为保证新增成功需要先删除该用户,而删除用户需要管理员登录才能删除:提取管理员登录的token,用于删除用户2、查询用户:根据上面新增的用户名查询用户信息3、修改用户:在查询用户接口提取新增的用户id,修改该用户的信息4、删除用户:清理新增的测试数据,保证下次能注册成功5、增加响应断言,即可完成一套简单的接口自动化流程......

2022-06-16 17:34:08 1371

原创 http协议的请求和响应

1、请求请求头:包含User- agent等键值对信息,用来描述客户端的基本信息请求行:包含请求方式、请求地址、协议版本,请求方式一般常用的有get、post、put、delete请求体:get一般没有body,post请求有。对应平时jmeter输入的请求参数,键值对或json格式2、响应响应头:包含Content- type等信息,若干个键值对,是服务器告诉客户端浏览器的一些配置信息响应行:由http协议版本、响应状态码、状态码描述组成,常见的响应码和含义:1xx:临时响应,服务器接收客户端消息,但没

2022-06-16 16:01:34 118

原创 Jmeter-把响应信息设置为全局变量

接口返回token值,其他线程组需要用到这个token,这时就需要把token设置成全局变量。1、添加正则表达式提取器,将返回的access_token提取出来,命名为token2、添加BeanShell后置处理器,将正则表达式提取器提取出来的值变成全局变量${__setProperty(token_id,${token},)}; 3、在其他线程组引用,${__P(token_id)}需要注意的是,这个情况的线程组应该是顺序执行的,需要勾选一下测试计划里的Run Thread Groups consecut

2022-06-16 14:17:08 1049

原创 Jmeter响应中文乱码处理方法

响应结果出现了中文乱码的情况方法一:找到jmeter的解压路径下的/bin/jmeter.properties,找到#sampleresult.default.encoding=ISO-8859-1,在底下新增一行sampleresult.default.encoding=utf-8修改之后重启jmeter,中文显示正常方法二:按照方法一的设置,还可能有一些接口会乱码,那么需要在请求的时候编码设置成utf-8...

2022-06-16 11:56:44 567

原创 Jmeter之cookie管理器+信息头管理器

1、cookie管理器添加>配置元件>Http Cookie管理器,添加cookie的键、值、请求的域名可以看到请求传入了这个cookie2、信息头管理器添加>配置元件>Http信息头管理器 ,增加一行:名称填入Cookie,值填入cookie对应的键=值3、cookie管理器可以存储接口返回的cookie数据,但不在管理器中展示。添加一个cookie管理器;把jmeter目录下/bin/jmeter.properties的CookieManager.save.cookies=false修改为true;添加

2022-06-15 16:15:39 1424

原创 Jmeter之高斯随机定时器

高斯随机定时器可以设置一定范围内的延迟时间添加>定时器>高斯随机定时器,设置偏差、固定延迟偏移。这里我设置偏差为2000ms,固定延迟偏移为3000ms,那么延迟的时间范围就是2000-5000ms

2022-06-14 16:09:32 1216

原创 Jmeter之固定定时器

固定定时器可以用在两个请求之间,第一个请求发送之后等待一段时间再发送第二个请求。1、添加>定时器>固定定时器,设置延迟时间。可以看到第一个请求发送之后,等待3秒才发送第二次请求:2、如果需要保证执行顺序,则需要添加“临界部分控制器”未添加临界部分控制器之前的顺序是1-1,2-2添加临界部分控制器之后的顺序是1-2,1-2...

2022-06-14 15:07:29 4902 3

原创 Jmeter之同步定时器(Synchronizing Timer)

同步定时器类似LoadRunner的集合点,作用是阻塞线程,达到指定的线程数量后,再一起释放。添加>定时器>同步定时器(Synchronizing Timer)1、模拟用户组的数量:每次释放的线程数量,即并发数。默认为0设置为0则并发数等于线程租中的线程数;设置大于0则等待达到这个数量再并发执行。2、超过时间以毫秒为单位:默认为0如果设置为0,该定时器将会等待线程数达到了"模拟用户组的数量"中设置的值才释放;设置大于0,超过设置的时间但是没达到"模拟用户组的数量"的线程数,将不再等待,释放当前的线程数。如果

2022-06-14 14:32:08 4629

原创 Jmeter之Beanshell

BeanShell脚本主要通过vars和props去访问变量,常用方法:需要注意的是,vars只能操作本线程组的,props可以操作其他线程组,props只能put进去String类型的值,而不能是一个对象。1、vars.get可以从元件中取值,也可以从当前文件中获得值定义变量a=111,b=222添加>取样器>Bean Shell取样器,获取a,b的值并赋值给aa和bb,再把aa和bb的值赋给c,d2、jmeter中查看日志使用log.info();如果是System.out.println();则

2022-06-13 20:13:20 798

原创 Jmeter参数化的几种方式

1、用户定义的变量(User Defined Variables)用于存放不需要随迭代发生改变的参数(只取一次值的参数),比如host、端口号、url添加>配置元件>用户定义的变量,设置host和url在请求中引用:${需要引用的变量}测试过程中,可能有多个url或者一些公共的变量,使用这种方式定义会方便很多2、CSV Data Set Config同一个变量有多组值时,可以使用这种方式,比如验证多个用户登录。文件内容:添加>配置元件>CSV Data Set Config文件名:选择文件路径文件编码:不填

2022-06-13 17:22:42 2157

原创 jmeter元件的作用域+执行顺序

1、元件①测试计划:是Jmeter的起点,是其它Jmeter测试元件的容器②线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求③配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容④前置处理器:在请求之前工作,常用来修改请求的设置⑤定时器:用来定义请求之间的延迟间隔⑥取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、J

2022-06-13 13:39:53 985

原创 记录jmeter打开报错

命令行报错:Uncaught Exception java.lang.IllegalAccessError: class com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$DetailsTableModel (in unnamed module @0x6ee12bac) cannot access class sun.awt.shell.ShellFolder (in module java.desktop) because modul

2022-06-10 19:49:14 420

原创 unittest小知识(三)- 断言+生成html测试报告

unittest的断言+如何生成测试报告

2022-06-10 16:36:24 151

空空如也

空空如也

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

TA关注的人

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