- 博客(50)
- 资源 (4)
- 收藏
- 关注
原创 反射 - 基础
反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。Class类通过Class实例获取到该实例对应的class的所有信息class(包括interface)的本质是数据类型(Type)。无继承关系的数据类型无法赋值。相关概念class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就为其创建一个Class类型.
2020-12-15 11:31:08 215
原创 JAVA 打印日志
前言最简单的方式,就是system.println.out(error) ,这样直接在控制台打印消息了。Java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。log4j , 最强大的记录日志的方式。 可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。commons-logging, 最综合和常见的日志记录方式, 经常是和log4j 结合起来使用。如何规范的打印日志日志文件命名类型标识指此
2020-12-10 16:35:20 3234
原创 「Python」unicode转码成中文
res = http_get.text.encode().decode('unicode_escape')
2019-12-23 17:50:04 930
原创 【Selenium+python】下拉框定位不到元素
这种封装的表单组件,定位的往往都是美化过的元素,而不是元素dom,这点以后在找元素的时候注意。driver = webdriver.Chrome()driver.maximize_window()driver.get("http://www.peninsula.com/en")driver.find_element(By.CLASS_NAME,'end-cta').c...
2019-06-25 16:13:07 4007 2
原创 【Selenium+python】下拉框
使用Select实例化下拉框对象from selenium.webdriver.support.select import Select
2019-06-25 11:23:32 461
转载 Appium环境搭建python篇(mac系统)
1、安装Appium通过终端安装:安装nodejs,下载地址:https://nodejs.org/download/,安装完成后打开终端输入node -v,检查是否安装成功安装npm,打开终端,输入命令:sudo bashsudo curl -L https://npmjs.org/install.sh | sh安装完成后,输入npm -v,检查是否安装成功安装app...
2019-06-25 10:40:16 347
原创 xpath 定位
1.利用标签内的属性进行定位xpath = "//标签名[@属性='属性值']"xpath = //a[@id='kw']xpath =//input[@name='userid']xpath = //input[@name='...' and @type='...']2.利用text()方法定位xpath = //a[text()='更多产品']3.利用conta...
2019-06-24 17:58:11 246
原创 【Python】读写
# 打开和关闭文件f = open("data.txt","r")f.close()# 为了方便,避免忘记close这个文件对象,用以下方式替代with open('data.txt',"r") as f: str = f.read()# 读文件f = open("data.txt",'r')str = f.read()f.close# 按行读取文件#第一种方...
2019-06-20 16:11:07 388
原创 【Python】Selenium
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。基本使用声明浏览器对象chr...
2019-06-20 14:34:32 125
原创 【Selenium+python】HTMLTestRunner
批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner导入HTMLTestRunner下载后手动导入,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.htmlDownloa...
2019-06-20 11:25:18 186
原创 【Selenium+python】switch_to
目前接触到的switch_to的用法包括以下几种:driver.switch_to.window(window_name) 切换到制定的window_name页面driver.switch_to.alert() 切换到alert弹窗webdriver中提供的switch_to_alert()方法可以跳转至...
2019-06-19 17:04:01 2071
原创 【Selenium+python】定位及frame
很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法)。frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对seleniu...
2019-06-19 16:13:33 757
原创 【Selenium+python】close() 和 quit()
这是close()的说明:Closes the current window.关闭当前窗口。这是quit()的说明:Quits the driver and closes every associated window.退出驱动并关闭所有关联的窗口。从这里就很明显的看出来这两个方法的区别,一个关闭当前窗口,一个关闭所有窗口。...
2019-06-19 15:54:20 1351
原创 【Selenium+python】窗口句柄
元素有属性,浏览器的窗口其实也有属性的,只是你看不到,浏览器窗口的属性用句柄(handle)来识别。人为操作的话,可以通过眼睛看,识别不同的窗口点击切换。但是脚本没长眼睛,它不知道你要操作哪个窗口,这时候只能句柄来判断了。获取当前页面的句柄:driver.current_window_handle获取当所有的句柄:window_handles切换句柄方法一: 1.循环...
2019-06-19 15:38:57 502
原创 【Selenium+Python 学习】元素定位之CssSelector
CssSelector常用定位1.根据tagName driver.findElement(By.cssSelector("input")2.根据ID driver.findElement(By.cssSelector("input#username"));html标签和#id driver.findElement(By.cssSelector("#username"))...
2019-06-19 14:41:03 1067
原创 「软件测试」 抓包token的理解
国内大部分的授权协议都是Oauth2.0。这个协议简单的说通过给用户提供一个令牌(token),而不是通过用户密码来授权,这样的一个好处时,可以方便开发者开发软件,而使用者不需要将密码提供给开发者从而避免一些隐私的问题。通过token证明你可以有资格对这个测试环境中的页面进行抓包。其实抓包是一个很简单的概念,只要对http协议有基本的了解就可以,网上有大量的可以抓包的库。其实只要时基本的...
2019-05-30 19:58:36 11683 1
原创 图解HTTP 第一章 了解Web及网络基础
使用HTTP协议访问Web根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务端获取文件资源等信息,从未显示出Web页面。网络基础TCP/IP使用的网络(包括互联网)是在TCP/IP协议族上运作的,HTTP属于它内部的一个子集。TCP/IP协议族协议中存在着各种各样的内容:从电缆的规格都IP地址的选定方法、寻找异地用户的方法、双方建立通信的顺序,以及Web页面显示...
2019-05-21 17:06:06 233
原创 结构测试
路径测试程序图:给定一段用命令式语言编写的程序,其程序图是一种有向图,图中的节点表示语句片段,边表示控制流。DD路径(decision-to-decision path)程序图中的一条链,使得: 情况1:由一个节点组成,内度=0。情况2:由一个节点组成,外度=0。 情况3:由一个节点组成,内度≥2或外度≥2。情况4:由一个节点组成,内度=1并且外度=1。 情况5:长度≥1的最大链。...
2019-05-16 18:06:04 1057
原创 功能测试
边界值测试1、边界值测试基本思想利用输入变量的最小值、略大于最小值的值、正常值、略小于最大值的值和最大值处的取值。“单故障”假设,即失效问题不会由两个(或多个)故障同时引发。构造边界值测试用例的方法是:仅让一个变量取极值,而让其他所有变量都取正常值。局限性仅适用于 其函数的多个变量是相互独立的,各个变量又代表实际的物理量。2、健壮性测试(边界值测试的拓展)对变量...
2019-05-16 17:24:11 807
原创 软件测试 —— 接口测试
一、常见接口1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这...
2019-05-16 16:02:13 6423
原创 C++ string&int
得到int每位数字int n;string s = "";while(n>0){ s = n%10+s;}应用:Integer to Romanint unit[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1};string roman[] = {"M","CM","D","CD","C","
2018-10-26 11:15:39 167
原创 C++ string& char
string转int 判断超出范围if(count>INT_MAX/10||(count==INT_MAX/10 &&(a>INT_MAX%10))){ return sign==-1?INT_MIN:INT_MAX;}count = count*10+a;找string里面的空格string s;s[i] == ' '; ...
2018-10-24 10:58:02 168
原创 C++ STL
auto定义变量时放在变量前,无需知道具体变量类型,系统可自行推断类型,减少编程工作。auto a=1;auto b='a';auto s="abdc";auto c;//这样使用时错误的,系统无法自动推断出变量类型//下面为迭代指针使用,很方便vector<int> vec;auto it=vec.begin();迭代器advance将迭代器it,移...
2018-10-23 20:50:43 104
原创 C++ 字符串 int转字符串
1、使用stringstream#include <sstream>int i;stringstream ss;string s;ss<<i;s = ss.str();// ss>> s;注意:使用stringstream时的清空操作 在C++中可以使用stringstream来很方便的进行类型转换,字符串串接,不过注意重...
2018-10-22 13:08:13 1702
转载 Python yield
3.1. 提问者的问题Python关键字yield的作用是什么?用来干什么的?比如,我正在试图理解下面的代码:def node._get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yie...
2018-05-09 20:29:11 128
转载 python hashable属性
object.__hash__(self)Called by built-in function hash() and for operations on members of hashed collections including set, frozenset, and dict. __hash__() should return an integer. The only required p...
2018-05-09 14:59:13 679
原创 Python 元祖与集合
集合1、特点 (1)集合是没有顺序的概念。所以不能用切片和索引操作。 (判断2个集合是否相等,之和元素本身有关,和顺序无关。) (2)互异性(集合你不存在两个相同的元素) —— 可以用来筛选列表、字典等重复的元素 (3)可迭代2、操作 * 创建集合set():可变的 frozenset():不可变的 * 添加元素add:添加一个字符串 eg:a.add('love'...
2018-05-09 14:48:47 990 1
原创 Python CookBook 笔记 第一章:数据结构和算法
解压序列赋给多个值* 任何的序列(或者是可迭代对象) 可以通过一个简单的赋值语句解压并赋值给多个变量。唯一的前提就是变量的数量必须跟序列元素的数量是一样的。这种解压赋值可以用在任何可迭代对象上面,而不仅仅是列表或者元组。包括字符串,文件对象,迭代器和生成器。data = [ 'ACME', 50, 91.1, (2012, 12, 21) name, shares, price, date = ...
2018-05-09 11:18:13 246
原创 Pygame 外星人入侵(一)武装飞船
1、初始化 * Pygame初始化pygame.init()2、屏幕初始化(display) * 初始化窗口screen = pygame.display.set_mode((1200,800) 实际上pygame.display.set_mode()这个函数会返回一个Surface对象,他是位图的一种。 * 设置标题pygame.display.set_capt...
2018-05-03 21:42:39 1193
原创 Python 3.6 版本 zip zip object at 0x0000021EBA852DC8
错误:d = {'a':1,'b':4,'c':2}f = zip(d.values(),d.keys())print(f)<zip object at 0x0000021EBA852DC8>正确:d = {'a':1,'b':4,'c':2}f = list(zip(d.values(),d.keys()))print(f)[(1, 'a'), (4, 'b'), (2,...
2018-05-03 15:28:47 1823 1
原创 Python从入门到实践 学习笔记(六) 文件和异常
从文件中读取数据* 读取整个文件with open('pi_digits.txt') as file_object: contents = file_object.read() print(contents) * open('xxx.txt') : 接受一个参数——要打开的文件的名称。 返回一个表示文件的对象...
2018-05-02 19:40:28 239
转载 Python 取整数
#encoding:utf-8import math#向上取整print "math.ceil---"print "math.ceil(2.3) => ", math.ceil(2.3)print "math.ceil(2.6) => ", math.ceil(2.6)#向下取整print "\nmath.floor---"print "math.floor(2.3...
2018-04-27 10:01:18 1518
原创 LeetCode遇到的问题
1、返回已有数组时,需要先将原数组复制nums = numsNew + nums 没有返回值,或者nums没有修改 正确nums[:] = numsNew + nums
2018-04-26 21:44:00 288
转载 关于使用python ~取反操作符带出的一系列问题
首先看看行为In [1]: ~3Out[1]: -4取反3等于-4,那么是如何进行计算的呢? 首先我们知道3的二进制用8bit表示为 0000 0011 那么对这个数进行二进制取反得到 1111 1100 这点来说应该不会有什么理解上的问题。但是到这里,如果已经忘记或者不知道负数在计算机中是以补码形式表示的盆友(比如我这个菜
2018-04-26 19:32:58 951
原创 Python从入门到实践 学习笔记(四)
1、确定列表不是空的requested_toppings = []if requested_toppings: for requested_topping in requested_toppings: print("Adding " + requested_topping + ".") print("\nFinished making your pizza...
2018-04-25 20:52:24 253
原创 Python 定义空变量
i = Nonei = nulli = 0 (数值类型)i = '' (两个单引号) 或 i = "" (这是字符串类型)i = [] (列表类型)i = {}(字典类型)i = () (元祖类型)
2018-04-25 20:10:48 37818 2
转载 Python去除列表中重复元素的方法
本文实例讲述了Python去除列表中重复元素的方法。分享给大家供大家参考。具体如下:比较容易记忆的是用内置的setl1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2还有一种据说速度更快的,没测试过两者的速度差别l1 = ['b','c','d','b','c','a','a']l2 = {}.fromkeys(l1).ke...
2018-04-25 15:19:42 611
原创 Python从入门到实践 学习笔记(三)元祖
列表是可以修改的,而不可变的列表被称为元组 。** 可以通过set()筛选重复的元素 set(newList)定义 * 用圆括号来标识。定义元组后,使用索引来访问其元素,就像访问列表元素一样修改变量 * 不能修改元组的元素,但可以给存储元组的变量赋值 修改元素:dimensions = (200, 50)dimensions[0] = 250Traceback (...
2018-04-25 11:03:10 156
原创 Python从入门到实践 学习笔记(二)列表
访问1、索引从0开始 索引指定为-1 ,可让Python返回最后一个列表元素。 这种约定也适用于其他负数索引,例如,索引-2 返回倒数第二个列表元素,索引-3 返回倒数第三个列表元素,以此类推。2、查找python列表中元素的位置 * newList.index(object) 返回 元素第一次出现的位置修改、添加、删除元素1、修改 * newList[index...
2018-04-24 21:29:56 230
软件测试基础教程(第2版).pdf
2019-06-19
FWMSO2016VL.app.zip
2019-05-15
《HTTP抓包实战》_肖佳.pdf
2019-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人