- 博客(144)
- 收藏
- 关注
转载 jp@gc - UItimate Thread Goup
https://www.cnblogs.com/zhangyqn/p/11812368.html
2021-01-11 16:31:07
328
原创 redis参数传递
为什么要使用redis参数传递?真实场景中,并发用户比较大,如5w个用户,若都是用CSV文件时特别大得,会一次性得加载到jmeter得内存中,这时jmeter可能就会扛不住或者set一个很大得内存空间,所以再真正分布式得时候一些特别大得文件会存放到redis中;但肯定会对性能有影响,因为会有读取得操作,所以最好保证redis和脚本最好再相同得网段上,这样才不会影响压测得性能得表现Redis Key:对应Redis数据库中的KeyVariable Name:Redis数据库中取出数据后存储的变量,可以
2021-01-11 16:12:04
517
原创 CSV 和 User parameter传参
delimiter(use "\t" for tab):默认分隔符为“,”,可自定义sharing mode:是否线程共享txt内容:执行用例:全部通过
2021-01-11 15:08:24
344
原创 用前一个请求的返回url重新请求(JSON Extractor提取)
第一个接口:https://api.zhihu.com/market/header第二个接口:第一个接口中返回的url再次请求设计用例:添加后置处理器:JSON Extractor,json path: $..url (说明:$代表根目录,..代表第二个目录级别,url代表要取得字段)第二个用例设计:运行用例:成功...
2021-01-11 14:39:28
232
原创 JAVA接口自动化框架12:邮件发送(第2种方式:Java代码发送)
1. pom.xml导入依赖包<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency>2. 邮件开启smtp服务,并复制授权码,注意代码中写的password不是密码而是授权码,本人的实现如下package com.qa.com
2020-12-16 10:24:15
650
1
原创 JAVA接口自动化框架11:断言封装
断言类封装package com.qa.ResultDeal;import org.apache.commons.lang3.ArrayUtils;import org.apache.http.client.methods.CloseableHttpResponse;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.testng.Assert;import java.io.IOException;/**
2020-11-24 10:24:21
995
原创 JAVA接口自动化框架10:返回值提取
解决问题:从返回值中提取各种需要的字段,如下json串,我们需要取出的字段,封装提取方法1)code/msg 第一节点返回的内容2)data下的customerList数组3)data下的customerList数组中的cid{ "code": 200, "msg": "ok", "data": { "customerList": [{ "cid": 358629, "follower": "", ...
2020-11-24 10:16:47
1186
1
原创 第一次使用idea编码及git协作开发
第一次使用idea感觉他真的好难懂,用惯了eclipse使用它真是欲哭不能,公司新电脑决定用下这个软件1. 安装激活idea2. 配置maven配置maven,因为使用eclipse自带的maven有时会出一些莫名其妙的问题,最好是自己重新下载配置maven1)配置环境变量 MAVEN_HOME:D:\JavaTools\apache-maven-3.5.02)配置 Path:%MAVEN_HOME%\bin3)配置好检查环境变量,cmd 输入 mvn -version 出现版本信息就是配
2020-11-11 16:14:10
258
原创 JAVA接口自动化框架9:用秘钥为多个参数进行AES加密及MD5加密
最近遇到一个开放接口,需要用秘钥把3个参数加密后传递,找了很多AES加密的文件放到我这里虽说能调通,但是得到的值确实不匹配的,所以如果公司用了AES加密的话最好问下研发要AES加密的文件,避免像我一样浪费很多时间一、开发文档展示信息:1. 请求方式 / 提交格式:post / json ,无body2. 请求头: 名称 值 ur-a...
2020-01-02 19:06:10
1104
1
原创 Mock模拟数据测试一:使用fiddler mock response数据
一、 什么是 mockmock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法那么何时使用????1、Mock模拟数据测试测试类 A 时,类 A 需要调用类 B 和类 C,而类 B 和类 C 又需要调用其他类如 D、E、F 等,假如类 D、E、F 构造很耗时又或者调用很耗时的话是非常不便于测试的,可以使用 Mock 对象模拟数据...
2019-12-26 16:14:44
3420
原创 JAVA接口自动化框架8:Redis存放测试数据
一、redis简介1. 内存型key - value 数据库,也叫缓存数据库,无需sql随存随用。详细教程:https://www.runoob.com/redis/redis-tutorial.html2. 安装、启动下载地址:https://github.com/MSOpenTech/redis/releases解压后目录,启动redis-service,启动redis-c...
2019-12-24 09:52:33
727
原创 认识spring及环境搭建
一、spring是什么? spring是一个开源框架,为简化企业级应用而生,使用spring可以使简单的javabean实现以前只有ejb才能实现的功能 spring是一个IOC(DI)和AOP容器框架具体描述spring:1.轻量级:spring是非侵入性,基于spring开发应用的对象可以不依赖springAPI2.依赖注入:(dependency in...
2019-11-09 21:33:43
233
原创 类的初始化过程
new Zi ( ) ;1.加载子类和父类到内存中2.定义变量num;给变量num赋初始值,比如int的是0,string类型的是null等3.调用子类构造器Zi(),子类构造第一个操作调用父类构造器(默认的super语句)4.调用父类构造器Fu()5.父类构造器中调用show()方法,子类重写了父类的方法,会调用子类的6. 给变量num赋值9;package...
2019-11-04 21:16:51
232
1
原创 异常
一、定义 异常:在运行时期发生的不正常情况;在java中用类的形式对不正常情况进行描述和封装对象;描述不正常的类就称之为异常类,其实异常就是java通过面向对象的思想将问题封装成了对象。用异常类对其进行描述;不同的问题用不同的类进行具体描述,比如角标越界,空指针等;以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性;二、异常体系问题很多描...
2019-11-04 20:51:56
394
原创 单例设计模式
单例模式:确保一个类在内存中最多只有一个实例,并提供一个全局访问点一、单例模式必备条件:1.构造器私有化,杜绝外界使用new创建对象2.获取单例对象的静态方法,多个线程来访问也是返回一个实例二、使用场景有些对象只需要创建一个,线程池、缓存、硬件设备;比如对于多个程序使用同一个配置信息对象时,就需要确保该对象的唯一性。如何保证唯一性:1)不允许其他程序用new创建该...
2019-11-01 20:36:36
282
原创 jmeter中body data使用post请求的json格式提交
之前介绍过jmeter中post的默认提交形式form表达提交,Content-type=“application/x-www-form-urlencoded”,使用直接 填写参数的形式本次介绍的是jmeter中body data使用也就是json格式,以post请求为例1. 使用非post默认的提交格式需要指定请求头信息,添加配置元件中的http信息头管理,并设置Content-ty...
2019-10-14 14:20:59
11479
2
原创 postman使用全总结
今天面试面试官是名程序员,问postman问的挺多的,现总结如下:一、获取cookie获取数据失败,且请求时需要cookie信息时,需要安装postman interceptor插件,这个插件可拦截浏览器的cookie;如果一些网站需要登录,就可以使用这个功能,前提是需要用谷歌登录一个网站1. 在postman工具中打开postman interceptor插件中设置filter re...
2019-10-11 18:18:43
3174
1
原创 List集合(存放有序可重复队列)
常用的ArrayList是一种先进先出的有序队列//list集合是有序的可重复的 @Test public void listTest1(){ List list =new ArrayList(); //不指定索引直接添加在集合最后 list.add(11); list.add(" 111"); list.add('a'); //指定索引 list.add(0...
2019-10-06 15:30:17
3083
原创 Map集合(key value类型有索引、存储方便的映射表)
一、//map的普通操作@Test public void mapTest(){ Map map=new HashMap(); //添加数据 map.put(1, "demo1"); map.put(2, 22222); //遍历 for(Object key:map.keySet()){ Object value=map.get(key); Syst...
2019-10-06 14:47:55
1938
原创 linux面试常用命令总结
1.more testfile查看固定日志,每次一屏、按空格键继续下一页、按ctrl+b键上一页(back)、q退出moren1)从第20行开始显示文档内容 ——》more +20 testfile2)逐页显示文档内容 ——》more -s testfile2.tail -f testfile 实时查看日志文件,ctrl+c退出日志 ——》tail -100f tes...
2019-10-04 20:52:37
463
原创 接口测试、APP和web测试流程(面试简化)
web测试流程,确保后台接口已测试完毕一、需求分析,了解具体需求二、测试准备:原型图、效果图、需求文件、测试用用例、用例评审、各种测试数据准备三、测试环节:接受版本开始执行 1)冒烟测试:对版本质量的控制以及此版本是否具备测试条件; 2)UI测试:核对效果图 3)功能测试:核对需求文件测试用例,对功能进行验证 4)兼容测试:各个浏览器,手机是否兼容 ...
2019-10-03 20:46:49
4769
1
原创 小程序、App与H5的区别
一、运行环境不同1.原生app直接运行在操作系统2.小程序运行环境是微信基于浏览器内核重构的一个内置解析器3.H5依附于浏览器外壳,包括WebView,可以使用浏览器中常用的window对象和document对象二、开发成本1.原生app的开发涉及到Android/IOS多个平台、开发工具、开发语言、不同设备的适配等问题,成本较大2.小程序只需开发一个就可以在 Android...
2019-10-03 17:48:45
3058
原创 appium自动化框架项目实战1——app初次使用引导页
简述:本套框架实现了appium全自动执行,多台设备同时执行,自动启服务,自动生成testng文件,监听,重连.......只需写测试脚本编写脚本顺序:page、action、test本次实战以“联通手机营业厅app”为例进行脚本编写,一下的page类和action类可以合并,但分开更为明确,根据自己喜好来写;断言可写在action中也可以写在test中;用例:app初次使用出现的...
2019-02-12 12:27:44
1571
原创 本地化操作(语言设置)
需求:设置中找到【语言和输入法】——》设置不同的语言——》验证设置的语言是否正确问题:如何定位语言与输入法,因为设置后字会变所以不可用xpath的text定位。因为小屏的在第二屏,大屏的在第一屏,可能需要滑动,所以不可直接用id定位(因为有多个相同id,且不可知是第几个,因为在第一页和第二页第几位是不同的)解决思路:1. 先获取所有的title,然后遍历把他们的text属性存入一个...
2018-12-28 16:50:09
702
原创 用例修改testng格式与多设备运行用例
一、把测试用例写成testng的格式,多设备运行用例具备的条件:1)需分两个(或多个)线程执行用例2)启动两个模拟器,一个设备对应一个服务端3)需要启动两个服务端且需要指定不同端口AppiumUtil.java类添加截图方法/** * 截图 * @param fileName * @throws Exception */ public void take...
2018-12-27 12:24:57
367
原创 TestNg基础
一、简介(单元测试框架,通过注解、分组、序列和参数化等多种方式组织和执行自动化测试脚本)1、优点:1)漂亮的html格式测试报告2)支持并发测试3)参数化测试更简单4)支持更多功能的注解二、安装testng1、启动 Eclipse,点击“Help”菜单,点击“Install New Software”菜单项。2、点击“Add”按钮3、在 “Add Rep...
2018-12-27 11:11:07
336
原创 appium自动启服务与事件监听
一、所需jar包二、监听类package com.appium.driver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import com.appium.util.AppiumUtils;import io...
2018-12-25 09:56:07
1027
2
原创 手势操作TouchAction
对于Appium来说,手势操作都集中在TouchAction这个类中,以下是对几种手势api的使用例子1. 点击操作TouchAction ta=new TouchAction(driver);//创建一个TouchAction对象ta.press(element).release().perform();//按一个元素ta.press(500, 450).release().perf...
2018-12-12 15:38:46
1758
原创 混合app
一、如何判断是否是混合app呢?打开uiautomatorviewer.bat进行查看,在框住的元素都定位不到,只能定位大框,且旁边显示的是webView,那这个页面就是混合页面,所以这个app为混合app;这种app有原生app还有h5页面,或者说单纯的就套了一个安卓的壳子,里面其实全部是h5;二、如何查看混合界面的元素?1. 需要在源码中打开应用的webviewdebug2...
2018-12-10 15:16:56
471
原创 Uiautomator2与toast获取
uiautomator2工作原理:WebDriver script:就是我们的执行脚本Appium: 客户端传递desired capabilities属性配置给Appium Server来创建一个会话,Appium Server会调用appium-uiautomator2-driver,同时将UiAutomator2 server的两个apk安装到测试设备上 1、appi...
2018-12-10 12:17:35
3759
原创 appium偏移量具体使用(光标定位错误,模拟键盘输入)
问题:如上图,输入手机号时总是点到区域和地区哪里,要解决此问题:第一不可使用sendKeys去输入,第二需要添加偏移量具体解决如下:1. AppiumUtils类添加方法,使用到之前查找元素的方法 /** * 逐个输入数字,模拟的是键盘数字输入,13082834445 * @param text 传入的数字 */ public void sendMobil...
2018-12-06 11:25:55
1146
原创 appium中的等待
1、死等Thread.sleep(5000);在操作类型(点击、滑动、拖拽、输入等)或者业务类型需要等待时间时使用2、隐式等待(智能等待:元素找到了就不等了)——针对多个元素查找 生效在查找元素时在设定的时间范围内不断查找直到查找超时,一旦找到元素就停止查找,继续执行代码。全局性设置,设置以后对其之后的查找元素方法生效,可以在代码中随时进行切换;driver.manage(...
2018-12-03 16:43:20
938
原创 appium实现手势锁屏用例
如图,实现锁屏用例的编写;分两种:一是可以定位到密码大框无法定位到具体的点(如图可以把大框划分);二是可以定位到元素的点 /** * 手势解锁 ,在定位不到每个小框时,只能通过大框计算 * @param element 解锁大框对象 * @param password 1~9自定义 */ public void gestureUnlock(AndroidElement...
2018-12-03 16:22:33
910
原创 driver其他常用的方法
一、AndroidDriver下的方法1、启动其他app//使用命令获取adb shell dumpsys window windows | findstr "mCurrentFocus" Activity activity=new Activity("appPackage", "appActivity");activity.setAppWaitActivity("appWaitAc...
2018-11-22 11:42:30
3022
原创 appium实用xpath定位元素-打开关闭按钮
一、实用xpath定位,定位菜单框中的5个元素表达式: //android.widget.HorizontalScrollView/*/android.support.v7.app.a$c但是在appium中无法识别“$”,要改为点“.”或者星“*”,所以要改为: //android.widget.HorizontalScrollView/*/*//获取菜单通过xpath:...
2018-11-21 15:09:21
1427
原创 使用xpath查找元素
自学网站:http://www.runoob.com/xpath/xpath-axes.html在appium中只是使用xpath技术查找元素,其他的不适用什么是xpath:XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。一、选取节点XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step ...
2018-11-19 16:25:12
5310
原创 appium获取属性、复选框单选框滑动选项用例编写
appium自动化中,如何操作复选框,单选框,滑动选项等,如下图package com.appium.zhihu;import org.openqa.selenium.By;import com.appium.util.AppiumUtils;import io.appium.java_client.MobileBy;import io.appium.java_client.an...
2018-11-19 16:22:13
2282
原创 JAVA接口自动化框架7:邮件发送测试报告(第一种方式:jenkins发送)
本篇主要介绍使用邮件发送测试报告1.添加java mail api包<!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency> <groupId>javax.mail</groupId> <artifactId>mail<...
2018-10-18 11:11:37
1324
4
原创 JAVA接口自动化框架6:生成extentreport测试报告
通过testng.xml生成extentreport测试报告一、说明:使用TestNg的Report监听器,不嵌入具体执行代码,仅需在配置文件中新增监听器即可。 报告文件生成路径为test-output/index.html。(可在代码中修改) 一个suite且一个test配置的情况下,会将执行的用例(method)作为一级节点生成报告。 一个suite且多个test配置的情况下,会...
2018-10-18 10:45:12
2727
3
原创 JAVA接口自动化框架testng学习
一、. testng.xml文件1. 声明suite,描述要运行的测试脚本集合,可以根据自己需要任意命名,最终这个名字会在testng的测试报告中展示<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><!-- 执行...
2018-10-17 15:51:33
680
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人