客户端iOS 的自动化测试 目录你需要准备用Xcode 构建你的测试项目使用 Appium 查找定位器带有页面对象模型的 iOS 移动自动化关联你的Sauce labs account通过 REST API 将您的应用程序上传到 Sauce Labs 存储配置你的设备添加Sauce Labs的配置配置Cucumber 报告Appium 能力配置ActionHelpers Class为 iOS 测试编写测试用例在Sauce Labs 中运行测试项目并且查看报告...
UI自动化的常见面试问题 常见的元素定位方式 id 根据id来获取元素,返回单个元素,id值一般是唯一的 name 根据元素的name属性定位 tagName 根据元素的标签名定位 className 根据元素的样式class值定位 linkText 根据超链接的文本值定位 partialLinkText 根据超链接的部分文本值定位 cssSelector:css 选择器定位; xpath 通过元素的路径来定位 ..
SSL 和TSL 的区别 SSL协议提供的服务主要有: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。 SSL协议的工作流程: 服务器认证阶段: 1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接; 2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息; 3)客服根据收到的服务器响应信息,产生
基本数据类型和包装类的区别 常见的基本数据类型有八种及其对应的包装类数据类型 长度 默认值 包装类 byte 8位 0 Byte short 16位 0 Shorter int 32位 0 Integer float 32位 0.0f Float long 64位 0L Long duoble 64位 0.0d Double char 16位 \u0000 ---\.
Token的作用 Token 是在服务端产生的,如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。为什么要用 Token?要回答这个问题很简单,因为它能解决问题!Token 能解决哪些问题呢?有如下几点:Token 完全由应用管理,所以它可以避开同源策略。Token 可以避免CSRF攻击(保护ASP.NET 应用免受 CSRF 攻击 - 张善友 - 博客园)。Token 可以是无状态的,可以在..
CSRF是什么 SRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌
浏览器的同源策略 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。同源的定义如果两个 URL 的protocol、port(en-US)(如果有指定的话)和host都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是“元组”。(“元组” 是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。下表给出了与 URLhttp://store.compa...
Cookies 和 Session的区别 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。Cookie 在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能.
[手动测试] Mobile App Testing on Sauce Labs 准备SauceLab 账户(注册) 测试APP上传你的APP到SauceLab 通过SauceLab的UI界面上传APP 在 Sauce Labs 的左侧面板中,单击 LIVE,然后单击 Mobile App。 点击上传应用。 您可以拖放应用程序,也可以浏览并选择文件。 我们目前支持 *.apk Android 应用程序文件、*.aab Android 应用程序包文件和 *.ipa 或 *.zip iOS 应用程序文件(解析 *.zip 文件以确定是否存在有效的 *.app 包)。 目前
OWASP ZAP下载、安装、使用(详解)教程 OWASP Zed 攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者积极维护。它可以帮助您在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。也可以说:ZAP是一个中间人代理。它允许您查看您对Web应用程序发出的所有请求以及您从中收到的所有响应。即可以用于安全专家、开发人员、功能测试人员,甚至是渗透测试入门人员。它也是经验丰富的测试人员用于手动安全测试的绝佳工具。主要拥有以下重要功能:本地代理 主动扫描 被动扫描 Fuzzy 暴力破解
Jsonpath 常用解析规则总结(二) HTML常用操作规则表达式 操作符 描述 $ 找到指定的元素 $('ul') $$ 找到多个元素,一般返回元素数组,如果带了index会返回指定的元素 $$('li') or $$('li')[0] shadow$ 找到shadowroot下的指定元素 shadow$('a') 'tag[attribut
Jsonpath 常用解析规则总结 前言:编写UI自动化测试脚本的时候常常需要通过Xpath去定位元素的位置或者JsonPath解析response的结果,这里介绍一下常用的通过Xpath的方式抓去元素的方式以及jsonpath的常用解析规则。JsonPath可在Central Maven存储库中找到。 Maven用户将其添加到您的POM: <dependency> <groupId>com.jayway.jsonpath</groupId> <...
如何利用Gatling Recorder自动生成API测试代码? 这篇文章主要介绍我们刚入门Gatling这种工具的时候如何快速的开始编写测试用例。通过使用Gatling Recorder工具可以帮助我们快速的开始上手。(OS: MAC OS X,开发工具:IDE,浏览器:Chrome, JDK 8)找到项目里的工具Recorder,右键点击运行 会弹出下面的界面,默认的Recorder Mode是HTTP Proxy,这里我们介绍另外一种方式 HAR Convert 选择HAR Converter之后,我们打开浏览器,同时打开F12,勾选Preserv.
Gatling + MAVEN 做性能测试(四)整合代码使用Jenkins Job 跑性能测试,并且查看Gatling Report 登陆到jenkins,选择右侧的New Item 创建一个新的Jenkins Job输入Job名称,选择Pipeline添加描述信息表明Pipeline用途 设置最多保存多少天的build 输入项目在github的链接设置job的参数,一般设置String或者选择类型的,可以通过参数设置测试环境和测试的用户数量以及运行的测试case设置定时任务每天固定时间运行,具体定义规则可以点击?查看如何设置,这里设置的上海时间每天早上六点运行这里设置j...
Gatling + Maven 性能测试(三)解读Gatling Report 一般本地运行完测试之后会在下图对应的目录下生成测试结果选中测试结果文件夹找到index.xml 文件,用浏览器打开打开之后你会看到下面这种图片:右上角显示你的Simulation的名字 Global information显示你所有的起请求以及请求响应的时间分布,红色代表失败的请求 右边Number of request一般代表你有多少用户并发 statisitics显示了所有请求具体的成功失败情况OK代表成功,KO代表失败,百分比99th pct代表对于这一个API总的请求...
Gatling + MAVEN 做性能测试(二)编写测试代码 这是测试的项目结构,具体每个文件夹是用来做什么,我在前面的项目搭建里面提到过,这里就不赘述了。properties file(包含一些基本的属性信息,例如baseUR,用户名密码之类的)baseUrl=https://ome.uat.ome-staging.eurekacloud.io/loginUri=auth/openid/login?provider=logoutUri=auth/logoutauthUser=auth/usercsrfToken=auth/csrf-token...
NodeJS 更改或读取json测试数据指定的key对应的值 读取NodeJS中支持方法 module.exports={},我们可以直接把测试数据放到这个方法里面,然后从外面直接读取对应的key的值。测试数据module.exports = { server:'pkc-43n10.us-central1.gcp.confluent.cloud:9092', key: '5003', value: { "visitPlanList": [ { "visitBi
Scala中通过JsonPath读取或者修改指定key的值 pom.xml 中引入依赖 <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>2.4.0</version> </dependency>修改指定字段: 测试数据文件{ "visitPlanList".
NodeJS 发送Kafka消息 我当前使用的测试框架是 Cucumber + Nodejs +WebdriverIO,所以文章主要介绍,这种情形下具体怎么使用。项目结构:data下面是kafka消息的具体内容,就是测试数据 env是测试环境信息 feature folder下面是测试文件 specs下面是编写cucumber可是别的语言并且调用kafka的消息 kafka.js是发送具体消息的代码 package.json里面添加依赖的jar版本,我这里使用的是kafkajs第一步:准备测试数据(这里包含SSl和.
用Scala 发送Kafka消息 分享一下用Scala发送kafka消息。准备 :代码编辑器 IDE offset explore2.1(链接你的cluster,同时查看你的kafka消息是否发送成功)pom.xml 引入 kafka-client新建文件编写脚本:package utilsimport org.apache.kafka.clients.producer.{KafkaProducer, ProducerConfig, ProducerRecord}import org.apache.kaf