工作之余
伊博乐
为了变成测试开发我拼了( `д´)!
展开
-
oracle数据库截取字符串的substr()和instr()函数的使用方法
== oracle数据库截取字符串的substr()和instr()函数的使用方法 ==substr()函数输出的是被截取字符串中的字符,使用方法是’’‘substr(字段名,起始位置,长度)’’’。其中字段名和起始位置是必填,长度如果不指定长度就会截取剩下所有的字符instr()函数输出的是位置,输出的是int类型的结果,使用方法是’instr(字段名,字符串元素,起始位置,第几次出现的字符串元素)’,两个函数可以搭配使用,起到处理数据的作用比如说我有三个字段,时间、路径、文件名称,每个字段下都有格原创 2021-12-06 11:04:38 · 1851 阅读 · 0 评论 -
appium(二)在实战中的常用基础命令与学习笔记
APP信息获取当前界面元素:adb shell dumpsys activity top获取当前任务列表:adb shell dumpsys activtty activitiesAPP入口adb logcat | grep -i displayedaapt dump badging mobike.apk | grep launchable-activity应用启动adb shell...原创 2020-02-25 14:14:43 · 278 阅读 · 0 评论 -
连接adb后安装目录下所有apk到设备
跳转到apk所在目录或将apk文件拷贝到adb根目录后使用for %i in (*.apk) do adb install %i即可安装路径下/根目录所有apk到adb所连接设备原创 2020-02-21 10:11:35 · 1554 阅读 · 0 评论 -
appium(一)环境与属性解释
Appium是一个开源的自动化工具,可以用任意的编程语言去写使用Appium需要在本地设置一个相应服务器,相应自动化脚本的服务器,如果需要安装请百度具体教程,或者使用node.js的命令在全局模式安装,可视化可以用GUI安装,会生成桌面图标启动时要设置host和port,如果server是安装在本机的,那么host为127.0.0.1,默认端口号为4723点击start后appium的服务就开...原创 2019-12-20 18:39:04 · 322 阅读 · 0 评论 -
jmeter的使用(普通篇)会用不代表熟练
会用不代表熟练安装jmeter时需要本机有java环境下载jmeter地址:http://jmeter.apache.org/download_jmeter.cgi如果想进行测试,可以在test plan中创建线程组,treat group,其中,name就可以当做是一个备注就好,重要的是下面几个Number of Threads,这个是线程数量,可以理解成模拟并发数目ramp-up P...原创 2019-12-16 14:04:27 · 238 阅读 · 0 评论 -
今天开始学java(十八)Junit单元测试、反射与注解(好日子来临罢!)
Junit单元测试:测试分类:1、黑盒测试:不需要写代码,给输入值,看程序是否能输出期望值2、白盒测试:需要写代码,关注程序具体执行流程。Junit使用:白盒测试使用 步骤: 1、定义一个测试类(测试用例) 建议: 测试类名:被测试的类名后加上Test 包名:xxx.xxx.xx.test 2、定义测试方法:可以独立运行 建议: 方法名:test测...原创 2019-12-02 14:00:27 · 234 阅读 · 0 评论 -
个人理解的面向对象+实例的增删改差
面向对象是一种编程思想,编程的目的是为了让计算机帮我完成一件事,衍生出现在的人机交互我觉得就是功能和特征写好,然后让类去使用、或者说是与类去交互,就是面向对象。。。#类:把一类事物的相同的特征和动作整合到一起,就是类#类是一个抽象的概念#对象:基于类而来创建的一个具体的事物也是特征和动作整合到一起而来的#对象具体的存在写个例子:#学校类:#特征:name,addr,type#动作...原创 2018-12-13 13:36:10 · 160 阅读 · 1 评论 -
random写五位随机码
random是随机的内容random.random()为0-1的浮点型的随机数random.randint是给整形的随机数,需要给出范围random.choice是给一个列表或者元祖什么的时候想取其中随机的一个值的时候就可以用choicerandom.ranrange(1,3)是1到3范围内随机取,但是不取3random.sample([1,2,3,4,5],2)是列表内随机取两个还有...原创 2018-12-05 21:45:02 · 1556 阅读 · 1 评论 -
日志logging模块
日志是分级别的,一般分为以下五组级别import logginglogging.debug ('debug message')logging.info('info message')logging.warning('warning message')logging.error('error message')logging.critical('critical message')根...原创 2018-12-12 14:27:28 · 218 阅读 · 0 评论 -
模块、包与暂时修改文件的绝对路径
学函数是为了避免大量的重复代码~模块也是如此~但是为了逻辑更清晰一点,不同功能的代码要放到不同的py文件当中,每一个.py文件就是一个模块模块一共有三种:1、python标准库2、第三方模块(比如说pip命令自定义安装模块)3、程序自定义模块比如说你在同一个包下创建了2个py文件,一个内容为def add(x,y): return x+ydef sub(x,y): return...原创 2018-12-05 10:18:53 · 194 阅读 · 0 评论 -
闭包加参数
首先写一个装饰器,对闭包进行修改import timedef timmer(func): def wapper(): start_time = time.time() res = func() stop_time = time.time() print('运行时间为%s' %(stop_time - start_time) return res return wappe...原创 2018-11-27 14:14:35 · 250 阅读 · 0 评论 -
装饰器 = 高阶函数+函数嵌套+闭包
装饰器:本质上就是函数,功能室为其他函数添加附加功能装饰器的原则:1、不修改被修饰函数的源代码2、不修改被修饰函数的调用方式装饰器的知识储备:装饰器 = 高阶函数+函数嵌套+闭包一、高阶函数的定义:1、函数接收的参数是一个函数名2、函数的返回值是一个函数名3、满足上述任意一个条件都称之为高阶函数def foo(): print('你好啊')def test(func): ...原创 2018-11-26 21:12:41 · 346 阅读 · 0 评论 -
三元运算,生成器表达式,列表解析
生成器是可迭代对象,可以理解成为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法)在python中有两种表现形式,一种是以函数的形式yield(),二是生成器表达式yield()函数:def test(): yield 1g = test()print(g)#输出一个生成器对象,需要nextprint(g.__next__())#输...原创 2018-11-23 13:23:26 · 625 阅读 · 0 评论 -
OS模块需要记住的方法
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cdos.makedirs(‘dirname1/dirname2’) 可生成多层递归目录os.removedirs(‘dirname1’) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkd...转载 2018-12-06 19:12:35 · 334 阅读 · 0 评论 -
json的功能和方法
json的模块是为了让任何语言之间传送json就两个方法,一个dumps一个loads如果使用json.dumps(),就会把内容转换成为json字符串模式,而且单引号会变成双引号,数字、列表,无论是什么类型的内容都会变成字符串形式的内容将内容转换成符合json规范的字符串后想要还原成之前的模式就要使用json.loads()>>> import json>&am原创 2018-12-07 15:33:28 · 648 阅读 · 0 评论 -
python正则表达式
在python中,正则是一个引过来的模块,叫re模块就本质来说,正则表达式是一种小型的,高度专业化的编程语言,内嵌在python中正则的作用简单来说就是模糊匹配,而且只对字符串处理,而且由于它是由C编写的所以运行速度特别的快1、普通字符:大多数字符和字母都会和自身匹配>>>import re>>>re.findall('原创 2018-12-10 20:04:09 · 192 阅读 · 0 评论 -
静态属性+类方法
之前学过一个技巧叫装饰器,有一个类提供的方法叫property,他可以封装你写的逻辑,然后让用户调用的时候完全感知不到在调用后端的什么逻辑class Shuichi: def __init__(self,chang,kuan,gao): self.chang = chang self.kuan = kuan self.gao = gao ...原创 2018-12-19 11:46:08 · 237 阅读 · 0 评论 -
老图:用扫把去理解面向对象
继承:继承自拖拉机,实现了扫地接口封装:清洁工无需知道如何运作,开动即可多态:平时扫地,天热可以当风扇多线程:多个扫把同时工作低耦合:扫把可以换作拖把,不影响其他组件化:每个配件都是可单独使用的工具代码托管:无需管理垃圾,扫到路边即可...原创 2018-12-26 13:07:24 · 587 阅读 · 0 评论 -
个人理解基于socket的网络编程及三次握手及四次挥手
如果把socket比做成打电话,可以理解成这样:TCP协议的三次握手与四次挥手TCP协议在传输层,首先客户端会发送一个SYN_SENT服务端收到SYN请求,进行SYN_RECV,然后服务端会回一个SYN,并且ACK = x+1,SYN代表要发起新的链接,服务端接收到之后,确认允许建立连接,客户端到服务端就建立成功了,但服务端到客户端也要建立一个请求,所以第二条箭头代表“一次确认,一次服务...原创 2019-01-10 09:52:50 · 688 阅读 · 0 评论 -
开始学java(六)方法的介绍以及注意事项
//方法就是若干语句的功能集合。//方法好比是一个工厂,参数就是工厂的原料,返回值就是工厂的产出物//参数就是进入方法的数据,返回值就是从方法中出来的数据定义方法的完整格式:修饰符 返回值类型 方法名称(参数类型 参数名称,很多参数的名称){方法体return 返回值;}修饰符:现阶段的固定写法 public static返回值类型:也就是方法最终产生的数据结果是什么类型方法名...原创 2019-08-14 18:00:11 · 146 阅读 · 0 评论 -
一道题:输出输入的内容以及其索引
今天看到一道题是输出输入的内容机器索引,我就不知道所以是什么但是又不是没有印象,这里给指出来:a = ‘CSDN’那么这个C的索引就是[0] S的索引就是[1]D的索引就是[2]解题:test = input('>>>') #test就是输入的内容L = len(test) #len就是数数~看看你输入的东西有多少个字符r = range(0,L) #range就是...原创 2018-11-01 17:39:24 · 199 阅读 · 0 评论 -
内置函数一
abs:绝对值print(abs(-1))#打印函数处理的结果,结果为1all:布尔运算,判断有没有0,None,但是为空返回Trueprint(all(‘hello’))#如果有全部为true为trueany:和all是相反的,如果有一个为真就是truebin:十进制转换成二进制print(bin(3))bool:判断布尔值,空,None,0的布尔值为false,其他都为true...原创 2018-11-19 22:23:01 · 124 阅读 · 0 评论 -
迭代器和for循环机制
什么是递归,之前举过一个问路的例子,A问B,B问C,C问D 最后一个一个的返回结果,这叫递归什么是迭代,每次结果都是依赖于上一次结果为迭代,问路例子,A问B,B让A去问C,A去问C,C让A去问D,就是这样迭代器协议是指:1、对象必须提供一个next方法,执行该方法要么返回迭代的下一项,要么就引起一个Stoplteration异常,来终止迭代(只能往后走不能往前退)2、可迭代对象,实现了迭代...原创 2018-11-22 12:43:29 · 788 阅读 · 0 评论 -
字典的膜法( `д´)!
字典dict类,在pycharm按住ctrl点击左键去看info = {“k1”:“v1”,“k2”:“v2”}字典也是根据逗号分割的,“k1”:"v1"是一个键值对,一个键一个值,组成了一对字典的value,可以是任何职,各种嵌套字典的key不可哈希所以不能使用可以改变的类型,比如说列表,字典布尔值因为在内存中储存的是0和1所以可能会和key为0和1的布尔值重复,重复的话只会显示其中一...原创 2018-11-07 14:18:56 · 936 阅读 · 0 评论 -
召唤元祖( `д´)9!元祖的含义
元祖其实就是对列表的二次加工,哈哈哈哈哈哈黑心棉元祖的一级元素不可被修改,而且不能被增加、修改、删除,只能查看tupletu = (111,“qweqwe”,(),[],true ,)最好在最后一个元素加一个逗号,不加也没事,只是标准写法辣所以,索引也是可以的,切片也是可以的输出的时候元祖也是有序的但是如果想要输出第一个33时候tu = (111,“asad”,(11,22),[(33...原创 2018-11-07 12:41:20 · 225 阅读 · 0 评论 -
一些关于字符串拼接的小方法
字符串的拼接可以用%s来拼接比如说msg = ’ i am %s my hobby is coding’ %‘ybl’这样print(msg)的话就是i am ybl my hobby is coding传多个值的时候多写几个%s然后用(‘xxx’,‘xxx’)就行了,数字、列表也是可以的当然也可以传字典qqq= 'i am %(name)s age %(age)d' %{'name...原创 2018-11-09 17:57:45 · 491 阅读 · 0 评论 -
一道题,让用户填写验证码与屏蔽敏感词语
def check_code(): import random checkcode = '' for i in range(4): current = random.randrange(0,4) if current !=i: temp = chr(random.randint(65,90)) else...原创 2018-11-06 19:21:27 · 185 阅读 · 0 评论 -
列表的膜法二( `д´)!list类中的方法二
如果你要输出列表内的所有东西s = 'qqqwwweee'new_s = list(s)print(new_s)```这样只会输出['q', 'q', 'q', 'w', 'w', 'w', 'e', 'e', 'e']但是如果你想让他们连起来,就只能自己写循环输出了s =[11,22,33,“qqq”,“www”]l = “”for i in s:l = l + str(i)...原创 2018-11-06 19:16:35 · 114 阅读 · 0 评论 -
我一定要成为测试开发( `д´)!今天还是工作之余的一点str的字符串用法二(还有标识符的常识)
python3.x今天跟着视频看了这么些,但是没有讲带下划线的方法 test = 'YiboleY' v1 = test.isupper() v2 = test.upper() print(v1,v2)#判断是否为大写,全部转换成大写,#加了参数就可以去掉参数中的内容 v1 = test.strip('boYil') print(v1)test = '种豆南山下'test1 =...原创 2018-11-01 12:42:23 · 180 阅读 · 0 评论 -
偶然发现的小知识1
pip install pyinstallerpyinstaller -F 名字.py安装过后使用上面那一条可以让写好的py脚本变成exe还有就是字典类型和字符串类型的互相转换import jsonx = {‘a’:‘1111’,‘b’:‘2222’,‘c’:‘3333’,‘d’:‘4444’}j = json.dumps(x)这样输出的内容x和j虽然是一样的但是x是字典类型,j是字...原创 2018-10-30 10:31:31 · 98 阅读 · 0 评论 -
字符串的膜法第一晚上( `д´)!(字符串方法)
今天下了一个pycharm,看了一下str的用法,记录一下方便以后使用test = ‘qweqwe123123!@#!@#’v = test.巴拉巴拉(巴拉巴拉的参数)print(v)capitalize第一个字母大写center设置内容并将内容居中,一个可有可无的字符count可以数出来你这个里面有多少个什么东西endswith参数里面可以写起始位置和结束为止,找到包含不包含“什么...原创 2018-10-31 19:58:01 · 203 阅读 · 1 评论 -
python成长之路!MMP!我要变强!
以前都是找东西!今天开始也要自己开始记录东西!以前用的python3.x今天换了2.7才发现如果需要输入中文需要提前声明一下``#!/usr/bin/env python-- coding:utf8 --``...原创 2018-10-29 19:39:26 · 374 阅读 · 0 评论 -
python的局部变量和全局变量
全局变量在python中要大写,局部变量要小写NAME = ‘ybl’这个变量没有任何的缩进,在项目任何地方都可以调用,这就是全局变量局部变量就是在子程序中定义的def change_name(): x = 1#这个就是局部变量 print('change_name',name)change_name()如果这个变量名字和全部变量名字相同,那么局部变量名字会覆盖全局变量名字...原创 2018-11-13 20:58:47 · 1005 阅读 · 0 评论 -
集合定义与基本操作(今天标题怎么这么正经)
由不同的元素组成,无序排列的,可哈希的值,这里面只能存放不可变类型的值,什么是不可变得值?数字,字符串,元祖s = {1,2,3,4,5}这就是一个集合,和字典很像啊kora!但是字典是由键值对组成的,虽然符号一样,但是定义方法是不同的type(s)就知道是什么类型啦,set比如说s = {1,2,3,3,3,3,3,3,3}输出时只输出1,2,3就很气因为不能重复,而且是无序的,所以...原创 2018-11-08 19:18:45 · 105 阅读 · 0 评论 -
关于python中return的个人理解
昨天钻牛角尖了,总以为return返回的值可以运行,其实是return可以返回任何值,可以返回字符串,函数内存地址巴拉巴拉,然后出现了这么一个例子:def test1(): return 1def test2(): print('test2') return test1res = test2()print(res())这个代码里面首先声明两个函数,然后运行test2,打印一个te...原创 2018-11-15 10:53:07 · 4341 阅读 · 0 评论 -
pytho文件操作
一、文件处理的流程1、打开文件,得到稳健的句柄,并赋值给一个变量2、通过句柄对文件进行操作3、关闭文件文件处理有多个模式,最常用的就只有’r’,‘w’,'a’三个模式,r模式是读,w模式是写,a模式是追加q = open(‘绝对路径’)就可以打开文件了,如果你的python文件和需要打开的文件名在同一个路径下,直接open(‘文件名’)就可以了,但是open函数会检索当前系统的编码,所...原创 2018-11-20 22:39:32 · 531 阅读 · 0 评论 -
内置函数二
ord():chr会表示输入的值在ascii中表示什么内容,ord是相反的,ord输入个字符,会表示在ascii中对应的数字pow():要写三个参数,写两个参数的话是几**几,就是几和几的平方,输入三个值pow(3,3,2)就是三的三次方和2取余reversed():翻转,迭代器,需要加一个list或者循环round()四舍五入set():变成集合的形式print(set’hello’)...原创 2018-11-20 17:26:05 · 94 阅读 · 0 评论 -
可变,长参数!参数的各种规则
函数的参数:分成形参和实参,形参是不占内存空间的什么意思呢,就是说你写了一个函数:def calc(x,y):res = x+yreturn resx和y在这里是变量,但是没有值,不占用任何空间,而且只有在被调用的时候才会占用内存单元,所以x,y是形参calc(2,3)可以扔进去,在这里呢,2和3就是实参,占用内存空间,但是这里print x和y的时候就会报错,因为无法打印出来,...原创 2018-11-12 19:54:25 · 213 阅读 · 0 评论 -
函数递归
递归就可以理解成为问路A问B,B不知道替A去问C,C不知道替B去问D,D告诉了C,C告诉了B,B告诉了A,这样就可以理解成为递归def calc(n)#可以理解成为一个死循环,一层一层的套 print(n) calc(n)#自己调用自己,走到这一步,又开始回到第一步calc(10)#给calc传值,一直打印10所以:1、递归必须有一个明确的结束条件2、每次进入更深一层递归时,问题...原创 2018-11-14 13:02:44 · 161 阅读 · 0 评论 -
函数!为啥要有函数与函数的返回值
函数都是为了完成某一种特定功能,而存在的!所以标准写法是要在函数开始前写一个注释,注释这个函数是干什么用的def开头作为关键字 然后写函数名称 然后写小括号,小括号里面是因变量 之后再来个冒号def test (x):x +=1return x之后需要再来个return也可以不写,但是最后一定要有一个结果,处理的结果还是得有的,return x就把x计算的值返回了例子:```de...原创 2018-11-12 15:53:38 · 2020 阅读 · 0 评论