- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 011优美的命名切片slice
你的工程中可能包含了很多难以直观的理解的硬编码切片,例如s[1:3] 。对代码的美观、阅读及其维护会造成一定程度的困扰。下面介绍如何使用切片对象来代替硬编码切片。首先看一下对比s = '0123456789's1 = s[1:3]s2 = s[3:]s3 = s[:3]s4 = s[1:8:2]slice_1 = slice(1, 3)slice_2 = slice(3, None)slice_3 = slice(3)slice_4 = slice(1, 8, 2)equal
2020-11-27 23:50:45 186
原创 010删除序列重复元素并保持顺序
在一个序列上面保持元素顺序的同时消除重复的值。看到这个标题,是不是会想到使用set() ,但是set()生成的结果顺序会被打乱,达不到保持顺序的目的。如果序列上的值都是 hashable 类型,那么可以很简单的利用集合或者生成器来解决这个问题。hashlib定义如下An object is hashable if it has a hash value which never changesduring its lifetime (it needs a hash() method), and c
2020-11-27 23:39:10 361 2
原创 009查找两字典的相同点
查找多个(大于等于2)字典的相同的值、相同的键。字典数据a = { 'x': 1, 'y': 2, 'z': 3}b = { 'x': 11, 'y': 2, 'w': 10}获取字典数据的相关操作输出不是list对象,如需使用列表格式请使用list()转换。print(a.keys())print(a.values())print(a.items())<OUTPUT>dict_keys(['x', 'y', 'z'])
2020-11-27 23:33:23 171
原创 008字典的运算
字典运算的核心是把字典转为合适的元组,然后对元组进行各种类型的操作。首先,我们一起来了解下zip()这个内置函数的用法。zip()用来把多个对象中的元素打包为一个个元组,input为可迭代对象,output为迭代器。a = [1, 2, 3]b = ['a', 'c', 'd', 'e']c = ['b', 'f', 'd', 'h', 'g']case1 = zip(a, b)print(f'List zip function case1: {list(case1)}')case2 = z
2020-11-27 23:29:11 256
原创 007有序字典(OrderDict)
在py3.6之后,字典都为有序,如果您使用的python>=3.6,可以无视这篇文章。有序,是指按照初始添加的顺序进行排序。有序字典可以通过来实现,声明后,其实例对象的用法与普通字典一样。from collections import OrderedDictimport jsond = OrderedDict()d['name'] = 'DaMing'd['age'] = 20d['number'] = 100d['mobil'] = '10233933333'print(f'in
2020-11-27 23:22:40 1557
原创 006多值字典生成(defaultdict)
要想把字典的键映射到多个值 ,需要把值保存到另一个容器中;比如:列表、集合,使用列表还是集合取决于你是否希望消除重复元素。eg. 多值字典{ "name": "DaMing", "mobile": ["6583243", "6489877"], "tag": {"student", "boy"}}先声明一下defaultdict的基础使用d = defaultdict(list)d['number'].append(110)d['number'].append(120)s
2020-11-27 23:20:25 174
原创 005实现一个优先级队列(举例)
实现一个优先级队列,能够以给定的优先级对队列进行排序,每次的pop操作都返回优先级最高的那个元素。首先,一起了解下heapq这个库的用法。heapq.heapify(x)将list x 转换成堆,原地,线性时间内import heapqheap = [1, 3, 5, 9, 3, 5, 3, 7, 2]heapq.heapify(heap)print(f'heap: {heap}')<OUTPUT>heap: [1, 2, 3, 3, 3, 5, 5, 7, 9]2 .
2020-11-27 23:18:35 369 1
原创 004找到最大或者最小的N个元素
heapq模块中的nlargest和nsmallest可以很方便的解决这个问题。nlargrst(int, [list|tuple|set|str])返回值类型 listimport heapqnumbers = [1, 2, 4, 6, -4, -3, -9, 9, 2, 8]large_nums = heapq.nlargest(3, numbers)small_nums = heapq.nsmallest(3, numbers)print(f'large nums: {la
2020-11-27 23:16:28 254
原创 003 保存最后N个元素
collections.deque可以完美的解决这个问题explanation:deque 可以创建一个固定长度的队列。有新的数据插入且队列已经满时,自动删除最老的一条数据。基础用法如下# 用法# 声明一个长度等于3的队列# deque也可以不声明长度 q = deque()q = deque(maxlen=3)# 在队列中后面追加数据q.append('a')q.append('b')q.append('c')q.append('d')print(f'01:{q}')# 在队列
2020-11-27 23:13:34 154
原创 002 从任意长度可迭代对象分解元素
从可迭代对象中分解出N个元素,这个过程不需要知道N的长度或者具体内容是什么,你只需要知道需要哪部分内容就可以了。可以使用*表达式来实现,具体case如下这里我们以log的获取举例说明# case1,可迭代对象分解的基本操作case1 = ('2020-08-10', '192.168.0.177', 'log1', 'log2', 'log3')date, ip, *logs = case1print(f'case1 res -> {date}; {ip}; {logs}')# cas
2020-11-27 23:10:10 122
原创 001 挖透序列分解
001 挖透序列分解所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。序列 <-> sequence聊序列分解之前,首先说一下序列有哪些,序列包含:Str,List,Tuple,Dict,Set。下面我们逐个来看下对不同类型的序列的分解。Listcase1 = [1, '2']a, b = case1print(f'case1 res -> {a}; {b}')Strcase2 = '123'a
2020-11-21 21:27:25 165
原创 关于登陆过程中有两个cookie验证的考虑
具体情况是这样的,我司一个系统中用到其他两个系统的数据,但是两个系统为两套账户系统,由此,再登陆中加入了另一个set-cookie,咱们先不考虑这样做的正确性,咱们来说,这样做了之后测试要注意些什么。PS:产品形式为公众号内的H5登陆时set-cookie的正确性(各个登陆方式)访问过程中,随便一个cookie过期,都应该重新请求登出清理cookie修改密码后,可以使用新密码正常登...
2018-11-06 00:16:08 503
转载 python技巧(setdefault 与 defaultdict)
转自:https://mp.weixin.qq.com/s/DFF8sRSW7W4nqB6mmLr2jQ从题目引出data = [("p", 1), ("p", 2), ("p", 3), ("h", 1), ("h", 2), ("h", 3)]要转换成result = {'p': [1, 2, 3], 'h': [1, 2, 3]}一般都会用的方法:d
2018-10-21 17:15:50 9490
转载 python实例方法、类方法以及静态方法
转自:https://blog.csdn.net/lihao21/article/details/79762681不多说,直接上代码示例讲解。下面三个方法一次为:示例方法、类放大、静态方法。#!/usr/bin/env python3# -*- coding: utf-8 -*-class Kls(object): def foo(self, x): pri...
2018-10-21 16:16:15 274
原创 软件测试52讲读后笔记(持续更新...)
开篇词 | 从“小工”到“专家”,我的软件测试修炼之道01 | 你真的懂测试吗?从“用户登录”测试谈起最近在极客读到茹炳晟老师的“软件测试52讲”,觉得观点很正,特记录一下自己的在意的点链接:https://time.geekbang.org/column/103PS:需付费,铁鸡勿点。开篇词 | 从“小工”到“专家”,我的软件测试修炼之道从开篇词可以了解...
2018-08-23 00:05:05 5096
原创 Fiddler基本使用(持续更新)
Fiddler抓取移动端数据使用Fiddler抓取手机数据抓取Https的接口数据Replay 重新执行选中接口修改request & response参数Before RequestsAfter ResponsesAutoRespoderFiddler抓取移动端数据使用Fiddler抓取手机数据手机设置代理Tools–>...
2018-08-19 17:02:17 536
原创 jmeter监听器参数说明
Summary report聚合报告图形结果分析Summary reportLabel:取样器/监听器名称Samples :事务数量Average:平均一个完成一个事务消耗的时间(平均响应时间)Median:所有响应时间的中间值,也就是 50% 用户的响应时间,大概是这个意思Min:最小响应时间Max:最大响应时间Std.Dev:偏离量,越小表示越...
2018-08-19 16:27:27 1751
原创 jmeter非GUI运行详解
应用场景命令行模式优点参数详解实例演示应用场景无需交互界面或受环境限制(linux text model)远程或分布式执行持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于生成报告命令行模式优点节约系统资源:无需启动界面,节约系统资源便捷快速:仅需启动命令行,输入命令便可执行,是为命令达人最爱易...
2018-08-19 16:20:15 782
原创 jmeter 定时器(持续更新)
定时器的作用域固定定时器(Constant Timer)定时器的作用域定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位置在sampler之前还是下面);当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;如果希望定时器仅应用于其中一个sampler,则把定时器作为子节点加入;如果希望在sampler执行完之后再等待,则可以使...
2018-08-19 16:02:11 1050
原创 nmon安装与基本使用
系统: ubuntu16.04安装获取tar包(长时间后,此地址可能失效) wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz解压后可以直接使用 tar -zxvf nmon_linux_14i.tar.gz给启动文件换一个名字来方便启动 mv nmon_x86_64_ubuntu13...
2018-08-19 15:51:34 823
原创 Jmeter连接带跳板机的mysql服务器
问题:解决方案:具体操作在Jmeter进行连接。问题:需要使用JDBC Connection Configuration来连接mysql,但是mysql服务器只能ssh访问,不能直接去连接解决方案:使用Putty这个远程连接工具来登陆,并将数据库的ssh->tunnel中的请求域名先映射到本地某个端口中。具体操作首先配置C...
2018-08-19 15:01:44 1142
原创 ubuntu16.04安装python3.6和pip9.0.1
前提安装python3.6一、zlib的安装:二、python3.6.3的安装三、安装pip四、报错1、pip安装install的时候报错’lsb_release -a’2、pip install库的时候的提示Can’t connect to HTTPS URL because the SSL module is not available前提ubuntu...
2018-07-22 19:32:59 2429 2
原创 ubuntu(aliyun)安装mysql(附卸载)
[目录] [TOC]ubuntu(aliyun)安装mysql(附卸载)一、安装安装mysql服务 sudo apt-get install mysql-server安装mysql客户端 sudo apt-get install mysql-client测试是否成功 sudo netstat -tap | grep mysql启动数据库服务 sudo serv...
2018-07-22 17:45:44 225
原创 robotframework | TypeError:object of type ‘WebElement’ has no len()
报错如上图,原因是因为参数和webelement对象名称重复了,如下。。。细心啊
2018-07-15 12:21:07 3390
原创 UI自动化生成截图
生成截图用的currentTimeToS = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))currentTimeToD = time.strftime("%Y-%m-%d", time.localtime(time.time())path = 'C:\\Git\\Intelligent correction' + '...
2018-07-15 12:18:15 701
原创 selenium在执行浏览器最大化方法的时候报错
driver.maximize_window()如上这句,原因是:driver版本过低实测换为2.33 有效(当然,我用的chrome)chromedriver地址:https://sites.google.com/a/chromium.org/chromedriver/downloads(需要科学上网)...
2018-07-15 12:16:32 2713
原创 关于元素可以被找到但是不能被click()的问题
原因是因为元素被其他元素挡住了,例如div.......解决方法:把click换为enter ,下面具体些from selenium.webdriver.common.keys import KeysnewTest = driver.find_element_by_css_selector('button[selenium="create_exercise_btn"]') # 布置作业newT...
2018-07-15 12:12:22 2492
原创 virtualenv & virtualenvwrapper
virtualenv和virtualenvwrapper都是python的虚拟环境,其存在的意义就是可以方便一台电脑做不通的项目,避免库的版本不通做成的影响等。一、virtualenv#安装 pip install virtualenv#新建虚拟环境 virtualenv testenv#进入虚拟换环境 cd到script目录 activate.bat#查看安装库...
2018-07-15 12:00:40 3333
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人