自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (4)
  • 收藏
  • 关注

原创 Cypress VS Selenium

From:

2023-07-28 17:03:06 712

原创 HTTP协议简介

2.HTTP协议的格式,一般包括4项内容(Request和Response相似,此处以Reqeust为例):1)Request Line2)Request Header3)Blank Line4)Request Body3. 分别介绍4项内容:以google 中输入http后,点击search后,查看network中信息为例说明。1) Request Line(一般基础进行)Req

2022-04-24 17:25:30 737

原创 解释器与编译器

理解这些概念:1.翻译:通常,我们写的代码,大部分都是高级语言(便于理解与应用),但计算机需要把高级语言变成机器能识别的语言(就是010101这样的比特流,本质是高电平/低电平)。这个过程叫翻译。2.解释器:一段代码。一条语句接着一条语句的执行,即:一边翻译,一边运行。3.编译器:一段代码。整个代码一次行翻译完,再运行。Note:一般来说,在速度和效率上,动态运行的解释型语言比编译型语言要低/慢。但有些场景上解释型有其自己的优势。常见的解释型语言:Python,Jav

2022-04-24 16:33:43 1721

原创 管理 - 如何与领导相处

基本原则:-决定你升迁的是上司的上司。平时做好本职工作,适当的机会,给上司的上司也要留下好印象-区分决策权和建议权。下属有建议权,上司有决策权,不要乱。-干的好,更要汇报的好。汇报也同等重要。建议有规律的汇报。领导不需要惊喜,需要控制。-学会管理领导的期待值。困难和问题提前说,以为简单,做出来也认为是正常的。记住会哭的孩子有奶喝。-让领导做选择题,不要做问答题。可以提出方案供领导选择。-与前任领导保持联系。某时某刻,或许有什么好事就会想起你。-不要挑领导的刺。他身上一定有他的优势而你没有,你

2022-04-02 09:46:27 175

原创 如何使用RF进行数据比较:data of csv文件 vs UI of Page

#get base pathbase_path [Arguments] ${projectName} Comment ${basePath} BuiltIn.Evaluate re.sub(r'${projectName}.*$','${projectName}','${CURDIR}') re ${basePath_list} Split String ${CURDIR} \\${projectName} ${basePa.

2022-04-01 14:11:42 4377

原创 RF开发的基本原则

1).可复用性 -关键字(函数)最小化,再根据业务需求进行小关键字的组合(扩大) -这样做,使得多个Pattern(相似场景)模式下,可复用性更高2).函数改善(自定义RF) -should be equal(改善加入,actual>>log actual, expected>> log expected.3).framework -locator -keyword -customLib(python extension) ...

2022-03-23 15:17:18 1213

转载 Git 基本原理和常用命令

Git 基本操作Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。本章将对有关创建与提交你的项目快照的命令作介绍。Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。说明:workspace:工作区 staging area:暂存区/缓存区 local repository:版本库或本地仓库 remote repository:远程仓库一个

2022-03-18 17:35:10 136

原创 RobotFramework开发项目应用和规则

RobotFramework开发项目应用和规则(locator,keyword等需要一定命名规则,方便维护):另外,开发企业级别的Keyword时:1)尽量开发到最小单元,方便维护。2)Locator命名规则要注意,防止和其他page同名locator,否则RF报错。3)keyword命名规则要注意,防止和其他page同名keyword,否则RF报错。...

2022-03-18 16:53:29 160

原创 自动化测试架构常用选型

自动化测试架构常用选型如下:

2022-03-18 16:41:11 314

原创 How to install/run Jenkins on Apache Tomcat Serve

Total Steps:Step1, Download java 8 or 11 as Jenkins supports that Step2, Download Apache Tomcat Server Step3, Download Jenkins.war file Step4, Copy Jenkins.war to "webapps" folder of folder of Apache Tomcat Server Step5, Start Apache Tomcat Server S

2022-03-09 17:21:34 860

原创 空格如何处理(全角和半角的区分)

1)Issue1: 全角空格如何表示solution1:需要用\u3000.例如:${actual_carousel_title_2} AppiumLibrary.Get Text ${register_carousel_text_tilte2_locator}Should be Equal ${actual_carousel_title_2} または、本人確認書類1種類\u3000+\u3000補完書類1種類の用意2)Issue2: 半角空格如何表示soluti...

2022-03-04 18:03:35 1119

原创 how to use crontab on Mac to run automation testing?

1)testing_automation (a txt file in local PC, calling file : android_flow1.sh)50 2* * * /Users/levis.han/android_flow1.sh2)android_flow1.shsource /Users/levis.han/.bash_profilerobot --outputdir /Users/levis.han/Android --timestampoutputs --test An..

2022-03-04 17:55:37 2162

原创 python datetime 模块

import datetime1)取得当前系统时间date = datetime.datetime.now()print(date)#2022-03-01 17:31:06.0615432) 把时间进行格式化date = datetime.datetime.now()new_date = date.strftime("%Y/%m/%d %H:%M:%S")print(new_date)#2022/03/01 17:33:333) 取得年,月,日a = datetime.dat.

2022-03-01 17:49:06 296

原创 Execute JavaScript

1) 删除属性${Element} Get WebElement ${xxxx_locator}Execute JavaScript arguments[0].removeAttribute("type"); ARGUMENTS ${Element}2) 增加属性${Element} Get WebElement ${xxxx_locator}Execute JavaScript arguments[0].setAttribute("type","but.

2022-02-10 17:48:44 1660

原创 新tab窗口不能操作的解决方法

1)场景:界面A:登录界面(或其他界面),操作后,弹出一个新tab页或新窗口界面界面B(弹出一个新tab页或新窗口界面):不能被RF操作,如click,input等2)原因:界面的句柄仍然聚焦在界面A上,所以RF无法识别界面B。也就是无法识别界面B的元素,也就导致无法通过Xpath进行定位和界面操作3)解决:方法1:通过handle句柄完成#假设此次有RF代码,且界面A操作完了#接下来代码,是为了操作界面B${handle_list} Get Window H

2022-01-25 14:16:08 1036

原创 RIDE控制台输出信息有乱码的解决方案

RIDE的log没有问题,但是输出的控制台信息中有乱码。修改:python文件中encoding方式\Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py代码修改前:textctrl.AppendTextRaw(bytes(string, encoding['SYSTEM'])) # DEBUG .encode('utf-8'))代码修改后:textctrl.AppendTextRaw(bytes(s.

2021-11-18 09:17:00 836 1

原创 安装robot framework in Windows

假定使用Chrome浏览器,Robot Framework in Windows:1)安装python3.7(如3.7.5)不建议安装3.8及3.8以上,因为RF的集成开发环境RIDE暂时不支持2)配置python环境变量C:\Python37C:\Python37\Lib\site-packagesC:\Python37\Scripts3)Chrome Driver下载并Copy到Scripts目录下载:https://chromedriver.chromium.org/.

2021-11-08 14:38:55 93

原创 Automate to change Chrome default download path

2 ways:1. Python Seleniumfrom selenium import webdriverchromeOptions = webdriver.ChromeOptions()prefs = {"download.default_directory" : "C:\Work"}chromeOptions.add_experimental_option("prefs", prefs)chromedriver = "path\to\chromedriver.exe"driv.

2021-11-04 17:15:43 122

原创 Selenium常见问题与解决

Robot Framework or Selenium, 有时会遇到上面titile中的问题。主要原因:DOM发生了变化导致的。就是你使用API中的xxx方法,读取页面中的值的时是DOM1,当时当你校验或其他操作时DOM被reload了,页面发生了变化,变更为DOM2,所以报错误。解决方法:通过wait方法等待页面或元素稳定后(即达到了reload后的DOM后),再操作。...

2021-11-03 10:30:08 421

原创 Python CSV文件的操作

import csvfilename = "a directory path to csv file" def scoPy_read_csv_as_list(filename, delimiter=',', encoding = None): """ Reads a given CSV file and returns it as a list containing all rows as list with encoding=utf-8. """ file = open(filen.

2021-11-02 17:04:39 82

原创 Robot Framework Web Table 解析与获取

通过Robot Framework,有2种方法解析和获取 Web Table。1)此脚本通过get text获取整行tr的数据,再进行处理${Pgxxx_webList_tableBody_row_locator} //*[@class='xxx']/div[1]//*[@class='el-table__body']/tbody/tr get_table_data_Pagexxx ${web_list} Get WebElements ${Pgxxx_webLis

2021-11-02 16:53:41 419

原创 Postman Post请求Json数据类型

1.Post请求Json数据类型 Demo:Body:注意:如果是json数据类型,header中,设置content-type=application/json2.报错Postman请求报错:Exception Value: 'str' object has no attribute 'read'解决方案:这个是json解析时报错,python中的需要改为json.loads(string)json.load(filename) //从文件加载js...

2021-09-28 18:05:13 1878

原创 Vue2.js (4)Ajax - axios异步请求

1. Vue中如何引入Ajax - axios<!--引入Axios实现Ajax请求 --><script src="https://unpkg.com/axios/dist/axios.min.js"></script>2. Ajax - axios发送请求与响应const app = new Vue({ el:'#app', data:{ baseURL: "http://xxx:8000/", stu

2021-09-28 13:13:49 167

原创 Vue2.js (3)模版框架

典型的Vue2.js模版框架如下:<div id='app'>显示信息</div>var vm = new Vue({ //new Vue对象。应用Vue必须先new一个Vue对象 el : '#app', //定位,与html交互。此处el 与 html的div标签中id是相同的,但多一个‘#’ data : { display = '显示信息', //属性(变量)赋值。方便html中的应用 }, meth

2021-09-28 11:20:53 192

原创 Python Django - Ajax跨域问题解决方案

1.何为跨域请求?就是两台PC,如果协议(http)、主机(127.0.0.1)、端口(8080/8000)有一个不一致那就是需要跨域请求,主要是为了网络信息安全设置的。本例中端口不一致,所以要想访问,需要进行跨域请求进行解决。A 电脑 : http//127.0.0.1:8080B 电脑 : http//127.0.0.1:80002.解决方案:所有的框架都有自己的解决方案,对django框架来说,一般解决方案可采用前端和后端,但一般后端解决的比较多。前端解决方案:jsonp 后

2021-09-27 17:44:12 187

原创 Vue2.js (2)引入开发组件

1.如何引入Vue2(通过CDN)https://cn.vuejs.org/v2/guide/instance.html- 【学习】-【安装】- section CDN!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta.

2021-09-26 15:29:27 484

原创 Vue2.js (1)开发环境和目录

1.开发工具Visual Studio Code(August 2021 (version 1.60)) Visual Studio Code - 插件1 - 【Live Server】(实时作为server执行代码) Visual Studio Code - 插件2- 【Vue 2 Snippets】(前端IDE,智能提示等功能)2.目录结构css文件夹(包含.css样式文件) image文件夹(包含图片,视频等文件) js文件夹(包含.js等文件) html文件(包含.html文件.

2021-09-26 15:06:31 4350

转载 Ajax XMLHttpRequest的readyState属性

Ajax请求中,XMLHttpRequest.readyState 一般有5种状态。TheXMLHttpRequest.readyStateproperty returns the state an XMLHttpRequest client is in. An XHR client exists in one of the following states:Value State Description 0 UNSENT Client has been create..

2021-09-23 17:46:37 329

转载 Web运行原理与流程

Order in which component files are parsedWhen browsers send requests to servers for HTML files, those HTML files often contain<link>elements referencing externalCSSstylesheets and<script>elements referencing externalJavaScriptscript...

2021-09-23 15:58:59 137

原创 DOM的readyState属性

document.readyStateDocument.readyState属性描述了document的加载状态。当该属性值发生变化时,会在document对象上触发readystatechange (en-US)事件。1.语法:var string = document.readyState;2.值:一个文档的readyState可以是以下之一:1)loading(正在加载)document仍在加载。2)interactive(可交互)文档已被解析,"...

2021-09-23 14:04:03 312

原创 Robot Framework基础与模型

1.Robot Framework是一个通用的开源自动化框架。1)Robot Framework本身是在Apache License 2.0下发布的开源软件,生态系统中的大多数库和工具也是开源的。2)该框架最初由诺基亚网络开发,并于2008年开放源代码。3)它可以用于测试自动化和机器人过程自动化(RPA)。机器人框架得到了积极的支持,许多行业领先的公司在他们的软件开发中使用它。4)拓展性很强,可以引入很多开发包。如导入AppiumLibrary开发包,则可以对移动端进行自动化测试;导入Sel

2021-09-09 14:15:32 268

原创 python保留字

python保留字:import keywordprint(keyword.kwlist)Result:['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'i

2021-09-08 13:26:17 208

原创 Unix/Linux常用命令

1. Unix架构框图UNIX操作系统是一组程序,作为计算机和用户之间的链接。用户与内核通信是通过shell,可以理解为它是一个接口,是用户和内核沟通的桥梁。 Unix是最初开发于1969年,由一群在贝尔实验室,AT&T员工,包括Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. 可以在市场上有各种不同的Unix变种。Unix的Solaris,AIX,HP UNIX,BSD是几个例子。 Linux是Unix的一种

2021-09-07 16:44:49 1300

原创 自动化测试 Page Object Models(POM)

1.Page Object Models 优点1)进行了分类/分块,界限比较清晰2)形成了小仓库,便于被调用3)减少维护成本,这个最重要2. 不使用Page Object models的java例子/*** * Tests login feature */public class Login { public void testLogin() { // fill login data on sign-in page driver.findElement(By

2021-09-06 14:22:55 153

原创 Appium 不同手机分辨率影响滑动操作的问题和解决

问题:不同手机因分辨率不同,进行滑动动作时,滑动的位置也不同,进而影响自动化成功率。比如场景:iOS不同型号的3部手机,手机1,手机2,手机3。如何执行同一段代码,确保3部手机滑动操作的位置是基本一样的呢?1.iOS基本思路:iOS机型,基于Robot Framework,1)调用关键字Get Window Width/Get Window Height,获取iOS不同手机屏幕的Width和Height,2)通过Width和Height乘以一个合适的值(如0.25),生成坐标点${iOS_X

2021-09-06 13:41:59 426

原创 selenium和RF常见问题和解决

下面基本是Robot Framework集成Selenium Library开发包,进行Mobile Web场景下发生的问题,但单独使用PC Selenium也很可能会有同样问题,大家可酌情参考使用。1. 元素不可见时,不能取到text value问题:${home_amount} Get Text //*[@id="row_1"]/div[2] #提示不可见,不能获取这个值解决:通过滚动条拖动,直到该元素可见后,再使用Get Text关键字取值。备注:元素不可见情况...

2021-09-06 11:14:20 1327

转载 Appium iOS定位元素

转载,Appium iOS的元素定位

2021-09-03 17:49:13 151

原创 XPath常用方法

Web自动化测试中,很关键的一点是定位元素,那么如何定位元素呢?一般地,XPath技术常应用于定位元素。下面列出一些常用的Xpath技术。1.Web HTML Sample 1与Xpath<button class='Button_MobileSubmit' id='qa-fund-dialog' type='submit'>开始申请</button>//*[@class='Button_MobileSubmit'] #定位,用属性class//..

2021-09-03 11:34:47 557

原创 一个python文件调用另一个python文件

1. issue:一个python文件,如何调用另一个python文件?2. solution:通过import导入。举例:aaa.pyclass Event1(): def func(a): b = a+1 return bbbb.pyfrom aaa.py import Event #导入另一个python文件class Event2(): num = Event1.func(2) #调用另一个python文件中

2021-08-30 22:22:23 18680 1

原创 Appium + Robot Framework + Swipe滑动问题 - Android

1.Issue:Robot Framework自动化测试框架,AppiumLibrary开发包,Swipe()方法,会经常出现问题。如执行两次Swipe()但是两次滑动操作的距离却不一样。(这个问题官方也承认有此问题)2.Scenario:用Android手机,自动地滑动到期待位置3. Solution(思路):check element/buttonwhether clickable status If no, run swipe If yes, click itAppi...

2021-08-26 17:54:02 3165 2

Python数据分析与挖掘

Python数据分析与挖掘

2022-05-09

Python program examples

Python program - learning examples

2022-05-09

RF安装手顺.docx

环境搭建手顺

2021-11-17

StudentV4BE 2.zip

Vue,Django初学者

2021-10-09

空空如也

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

TA关注的人

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