13. 蛤蟆PYTHON脚本学习笔记十三类与对象

13. 蛤蟆PYTHON脚本学习笔记十三类与对象
13. 蛤蟆PYTHON脚本学习笔记十三类与对象

13. 蛤蟆Python脚本学习笔记十三类与对象

本篇名言:“人生如梦,岁月无情.蓦然回首,才发现人活着是一种心情,穷也好,富也好,得也好,失也好.一切都是过眼云烟,只要心情好,一切都好!”

由于Python被称做面向对象的语言,所以对象什么的就是Python核心概念了。

关于对象的具体,蛤蟆不再此处详述了。

1.创建类

如下所示:

class Person:

def setName(self,name):

https://www.360docs.net/doc/db13633601.html,=name

def getName(self,name):

return https://www.360docs.net/doc/db13633601.html,

def greet(self):

print"Hello,world! I'm %s."% https://www.360docs.net/doc/db13633601.html,

foo=Person()

bar=Person()

foo.setName('Luke Sky')

bar.setName('Anak')

foo.greet()

bar.greet()

输出如下:

Hello,world! I'm Luke Sky.

Hello,world! I'm Anak.

类把自己作为第一个参数传入函数中,命名为self。

2.特性、函数和方法

class Class:

def method(self):

print'I have a self!'

def function():

print"I don't ..."

instance=Class()

instance.method()

instance.method=function

instance.method()

输出如下所示:

I have a self!

I don't ...

通过实例调用方法,将实例中的方法给替换掉又继续调用。

为了让方法或者特性变成私有,从外部无法访问,只要在它名字前面加上双下划线即可。>>> class Secretive:

... def __inaccesible(self):

... print "bet you can not see me..."

... def accessiablez(self):

... print "The secret message is :"

... self.__inaccesible()

...

>>> s=Secretive()

>>> s.__inaccesible()

Traceback (most recent call last):

File "", line 1, in

AttributeError: Secretive instance has no attribute '__inaccesible'

>>> s.accessiablez()

The secret message is :

bet you can not see me...

看,直接访问__开头的方法是会报错的。

不够调用如下还是能访问的其实:

>>> s._Secretive__inaccesible()

bet you can not see me...

是不是很诡异?

只是编译的时候被翻译成加上单下划线和类名的形式而已。

3.类的命名空间

来看两个函数:

def foo(x): return x*x

foo=lambda x: x*x

功能基本一样,都将变量foo绑定到函数了。

定义类时,同样事情也会发生。

如下,在类作用域内定义了一个可供所有成员访问的变量。发现2个实例m1,m2其实是共享了类作用域内的变量。

class MemberCounter:

member=0

def init(self):

MemberCounter.member+=1

m1=MemberCounter()

m1.init()

print m1.member

m2=MemberCounter()

m2.init()

print m2.member

做重新绑定后,就屏蔽盖问题了如下:

m1.member='wo'

print m1.member

print m2.member

输出如下:

wo

2

4.指定超类

子类可以扩展超类的定义。将其他类名写在class语句后的圆括号内可以指定超类。

就是理解成子类。继承父类的方法和变量。

如下示例:

class Filter:

def init(self):

self.blocked=[]

def filter(self,sequence):

return[x for x in sequence if x not in self.blocked ]

class SPAMFilter(Filter):

def init(self):

self.blocked=['SPAM']

f=Filter()

f.init()

print f.filter([1,2,3])

s=SPAMFilter()

s.init()

print s.filter(['SPAM','ok','error','SPAM'])

输出如下:

[1, 2, 3]

['ok', 'error']

5.调查继承

查看一个类是否是另一个类的子类,通过内建issubclass函数来实现。

执行如下:

print issubclass(SPAMFilter,Filter)

print issubclass(Filter, SPAMFilter)

输出如下:

True

False

可以使用类的特殊特性__bases__,instance方法检查基类与是否是类的实例

print SPAMFilter.__bases__

print isinstance(s,SPAMFilter)

输出如下:

(,)

True

查找对象属于哪个类,可以使用__class__特性

6.多个超类

这个就是多重继承。非常有用。不过如果不是很熟练,就不要使用,会出现不可预测的问题。

python学习笔记

1、python中的函数以def来定义,利用缩进来表示函数的完整性,Python 函数没有明显的begin和end, 没有花括号, 用于标函数的开始和结束。唯一的分隔符是一个冒号(:), 接着代码本身是缩进的。如: def hello(): print “Hello,world\n” hello() #调用hello函数 2、所有的Python 模块都是对象并且有几个有用的属性。您可以使用这些属性方便地测试您所书写的模块。下面是一个使用if__name__的技巧。 if __name__ == "__main__": 3、d = {"server":"mpilgrim", "database":"master"} Python中的hash表,利用key来进行查询值 当使用dictionary 时, 您需要知道: dictionary 的key 是大小写敏感的。 Del d[key]:删除某个值 d.clear:清空整个hash队列 4、li = ["a", "b", "mpilgrim", "z", "example"] Python中的数组 li[0:3]:表示从0-2,结果为:['a', 'b', 'mpilgrim'] append 向 list 的末尾追加单个元素。 insert 将单个元素插入到 list 中。数值参数是插入点的索引。请注意, list 中的元素不必唯一, 现在有两个独立的元素具有 'new' 这个值, li[2] 和li[6]。 extend 用来连接 list。请注意不要使用多个参数来调用 extend, 要使用一个 list 参数进行调用。在本例中, 这个 list 有两个元素。 extend (扩展) 与append (追加)的差别 >>> li = ['a', 'b', 'c'] >>> li.extend(['d', 'e', 'f']) >>> li ['a', 'b', 'c', 'd', 'e', 'f'] >>> len(li) 6 >>> li[-1] 'f' >>> li = ['a', 'b', 'c'] >>> li.append(['d', 'e', 'f']) >>> li ['a', 'b', 'c', ['d', 'e', 'f']] >>> len(li) 4 >>> li[-1] ['d', 'e', 'f'] Lists 的两个方法 extend 和 append 看起来类似, 但实际上完全不同。 extend 接受一个参数, 这个参数总是一个 list, 并且添加这个 list 中的

接口自动化测试框架实例详解教程python+requests

接口自动化测试框架实例详解教程python+requests 前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的是java语言,但对于一个学java,却在学python的我来说,觉得python比起java更简单些,所以,我决定自己写python的接口自动化测试框架,由于本人也是刚学习python,这套自动化框架目前已经基本完成了,于是进行一些总结,便于以后回顾温习,有许多不完善的地方,也遇到了许多的问题,希望大神们多多指教。下面我就进行今天的主要内容吧。 1、首先,我们先来理一下思路。 正常的接口测试流程是什么? 脑海里的反应是不是这样的: 确定测试接口的工具—> 配置需要的接口参数—> 进行测试—> 检查测试结果(有的需要数据库辅助)—> 生成测试报告(html报告) 那么,我们就根据这样的过程来一步步搭建我们的框架。在这个过程中,我们需要做到业务和数据的分离,这样才能灵活,达到我们写框架的目的。只要好好做,一定可以成功。这也是我当初对自己说的。 接下来,我们来进行结构的划分。 我的结构是这样的,大家可以参考下: common:存放一些共通的方法 result:执行过程中生成的文件夹,里面存放每次测试的结果 testCase:用于存放具体的测试case testFile:存放测试过程中用到的文件,包括上传的文件,测试用例以及数据库的sql 语句 caselist:txt文件,配置每次执行的case名称 config:配置一些常量,例如数据库的相关信息,接口的相关信息等 readConfig:用于读取config配置文件中的内容 runAll:用于执行case

黑马程序员python基础班教程笔记使

爬?基本原理 爬?是模拟?户在浏览器或者App应?上的操作,把操作的过程、实现?动化的程序 当我们在浏览器中输??个url后回?,后台会发?什么? 简单来说这段过程发?了以下四个步骤: 查找域名对应的IP地址。 浏览器?先访问的是DNS(Domain Name System,域名系统),dns的主要 ?作就是把域名转换成相应的IP地址 向IP对应的服务器发送请求。 服务器响应请求,发回??内容。 浏览器显示??内容。 浏览器是如何发送和接收这个数据呢? HTTP协议(HyperText Transfer Protocol,超?本传输协议)?的是为了提供?种发布和接收HTML(HyperText Markup Language)??的?法。 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为?标的HTTP通道,简单讲是HTTP的安全版。 使?urllib爬取数据 1.urlopen( ) 打开?个url的?法,返回?个?件对象,然后可以进?类似?件对象的操作 2.urlretrieve( ) urlretrieve?法将url定位到的html?件下载到你本地的硬盘中。 如果不指定filename,则会存为临时?件。 urlretrieve()返回?个?元组(filename,mine_hdrs) 2.1 不指定路径 说明:清除由于urllib.urlretrieve()所产?的缓存 2.2 指定路径

2.3 urlencode( ) 上?的程序演示了最基本的??抓取,不过,现在?多数?站都是动态? ?,需要你动态地传递参数给它,它做出对应的响应。所以,在访问时,我们需要传递数据给它。最常?的情况是什么?对了,就是登录注册的时候呀。把数据?户名和密码传送到?个URL,然后你得到服务器处理之后的响应,这个该怎么办?下?让我来为?伙伴们揭晓吧!数据传送分为POST和 GET两种?式两种?式有什么区别呢?最重要的区别是GET?式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是?种不安全的选择,不过你可以直观地看到 ??提交了什么内容。 POST则不会在?址上显示所有的参数,不过如果你想直接查看提交了什么就不太?便了,?家可以酌情选择。 这?可以与urlopen结合以实现post?法和get?法: GET?法

最新《笨办法学python》学习笔记

《笨办法学python》学习笔记(Python 3.6) 习题19 ex19.py # -*- coding: utf-8 -*- # 定义cheese_and_crackers这个函数,该函数有两个参数,分别是cheese_count 和boxes_of_crackers. # 函数其实就是个print的集合 def cheese_and_crackers(cheese_count,boxes_of_crackers): print("You have %d cheeses!" %cheese_count) print("You have %d boxes of crackers!" %boxes_of_crackers) print("Man that's enough for a party!") print("Get a blanket.\n") #屏幕上首先显示下一行的语句。 print("We can just give the function numbers directy:") # 调用了这个函数,带入两个参数(20, 30) cheese_and_crackers(20,30) print("OR,we can use variables from our script:") # 定义两个变量 amount_of_cheese=10 amount_of_crackers=50 #将定义的两个变量作为参数引入到函数中。 cheese_and_crackers(amount_of_cheese,amount_of_crackers) print("We can even do math inside too:") # 引入的参数是一个运算式 cheese_and_crackers(10+20,5+6) print("And we can combine the two,variables and math:") cheese_and_crackers(amount_of_cheese+100,amount_of_crackers+1000) #自编练习1 def my_exercise_prg(prg1,prg2): print("The fisrt number is %d." %prg1) print("The second number is %d."%prg2) print("The first number and the second number equals " ,end="") print(prg1+prg2,".") print("Let's do math!") prg1=2 prg2=7 my_exercise_prg(prg1,prg2) #自编练习2

-Python基础教程(自学记录)

第一章快速改造:基础知识 1.2交互式解释器 在IDLE编辑器,在提示符后输入help然后按回车;也可以按下F1获得有关IDLE的帮助信息 1.4数字和表达式 1/2返回0,整除除法;1.0/2返回0.5,用一个或者多个包含小数点的数字参与计算。另外改变除法的执行方式:from_future_import division //可以实现整除,1.0//2.0返回0.0 %取余数;**幂运算; >>> 1/2

>>> 1.0/2 0.5 >>> 1.0//2.0 0.0 >>> 10%3 1 >>> 9**(1/2) 1 >>> 9**(1.0/2) 3.0 >>> 2.75%0.5 0.25 >>> -9%4 3 >>> -3%2 1 >>> -3/2 -2 1.4.1长整数 普通整数不能大于2147483647也不能小于-2147483648,若更大的数,可以使用长整数。长整数结尾有个L,理论上小写也可以,不过为了便于识别,尽可能用大写。

1.4.2十六进制和八进制 0XAF返回175 ,十六进制; 010返回8,八进制 >>> 0xAF 175 >>> 010 8 1.5变量 包含字母、数字和下划线。首字母不能是数字开头。 1.8函数 Pow计算乘方:pow(2,3),2**3均返回8;pow等标准函数称为内建函数。 Abs(-10)求绝对值,返回10;round(1.0/2.0)返回1.0,把浮点数四舍五入为最接近的整数值。 >>> pow(2,3) 8 >>> 2**3 8 >>> abs(-10) 10 >>> round(1.0/2.0) 1.0

python学习笔记(一)

python学习笔记(一) 安装 下载python安装包:https://https://www.360docs.net/doc/db13633601.html,/downloads/ 找到你的下载位置,双击安装

安装成功后,在开始菜单中就会多出几个图标。好了安装完毕可以开始使用了。 IDLE 是Python 的图形用户界面(GUI );Python 是Python 的命令提示符界面(command line )。它两都是和Python 解释器交互的手段。Module Docs 是模块手册,意思是Python 各种模块的说明书。 现在我们使用Python 3.9(64-bit)即命令提示符界面试一下! 输入:print(“Hello,World!”)回车,输入出结果“Hello ,World !” 当然我们最好使用GUI 界面。 这两外界面都是我们Python 交互解释器,也是我们用来执行语句的界面。

基本常识 1、数字和表达式 Python解释器可以当成一个很强大的计算器。下面我们来试一下! >>> 412+845 1257 >>> 12310-54131 -41821 >>> 1454*1321 1920734 >>> 87/84 1.0357142857142858 >>> >>> 4//3 1 >>> 1%2 1 >>> 4^2 6 >>>

值得注意的是: 长整型:对于大于2 147 483 647(231)就必须在数字后面加上“L”表示长整型数。2进制数:前面加0b(如0b1111就是二进制中的1111) 8进制数:前面加0o(如010就是八进制中的10)。 16进制数:前面加0x(如0xAF就是十六进制中的AF)。 >>> 0o10 8 >>> 0b1111 15 >>> 0o10 8 >>> 0xffff 65535 >>> 2、程序的结构

python基础教程-函数

函数 哈尔滨工业大学计算机学院 叶麟

函数是什么主要内容 1 函数定义与调用2 函数参数与返回值3 变量作用域4 函数优缺点 5

求1 to 10, 20 to 37, 35 to 49的和sum = 0 for i in range(1, 11): sum += i print("Sum from 1 to 10 is", sum) sum = 0 for i in range(20, 38): sum += i print("Sum from 20 to 37 is", sum) sum = 0 for i in range(35, 50): sum += i print("Sum from 35 to 49 is", sum)

def sum(i1, i2): result = 0 for i in range(i1, i2 + 1): result += i return result def main(): print("Sum from 1 to 10 is", sum(1, 10)) print("Sum from 20 to 37 is", sum(20, 37)) print("Sum from 35 to 49 is", sum(35, 49)) main() # Call the main function

收件人信息:姓名,地址,电话 发件人信息:姓名,地址,电话 物品,邮费 快递单 顺丰客户服务中心 接件地址顺丰快递员

函数 ?完成特定功能的一个语句组,这组语句可以作为 一个单位使用,并且给它取一个名字 ?通过函数名执行 f(x) = x2–2x + 1

Python与Java对比学习笔记

零基础学Python 第一天 Python简介 Python是一种面向对象、直译式计算机程序设计语言,这种语言的语法简捷而清晰,并且具有丰富和强大的类库。Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET 的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET 的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。目前稳定的版本是3.3,当时目前使用者还不是很多。我们学习中用到的是2.7。 Python优点 简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。 易学:Python极其容易上手,因为Python有极其简单的语法。 免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS 是基于一个团体分享知识的概念。 高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。 可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian 以及Google基于linux开发的android平台。 解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。 运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python 语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。 在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

基于Selenium+Python的web自动化测试框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 ? Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如java、python等)的形式导出成测试用例。 ? ? Selenium WebDriver:提供Web自动化所需的API,主要用作浏览器控制、页面元素选择和调试。不同的浏览器需要不同的WebDriver。 ? ? Selenium Grid:提供了在不同机器的不同浏览器上运行selenium测试的能力。 ? 本文将详细介绍如何运用Python结合Selenium WebDriver库搭建web自动化测试框架。 二、自动化测试框架 一个典型的自动化测试框架一般包括用例管理模块、自动化执行控制器、报表生成模块和log模块,这些模块相辅相成。

接下来介绍各模块的逻辑单元: 1、用例管理模块 用例管理模块包括新增、修改、删除等操作单元,这些单元又会涉及到用例书写模式,测试数据库的管理、可复用库等。 2、自动化控制器 控制器是自动化用例执行的组织模块,主要是负责以什么方法执行我们的测试用例. 3、报表生成模块 主要负责执行用例后的生成报告,一般以HTML格式居多,信息主要是用例执行情况。另外还可以配置发送邮件功能。 4、log模块 主要用来记录用例执行情况,以便于高效的调查用例失败信息以及追踪用例执行情况。 三、自动化框架的设计和实现 1、需求分析

Python基础入门教程

Python基础入门教程 你可能已经听说过很多种流行编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言,那么你知道Python是一种怎样的计算机程序设计语言吗?下面应广大读者需求,给大家呈上一篇Python基础入门教程的文章。 Python 是由Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。 Python 本身也是由诸多其他语言发展而来的,这包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。 像Perl 语言一样,Python 源代码同样遵循GPL(GNU General Public License)协议。 现在Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。 Python 特点

? 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。 ? 2.易于阅读:Python代码定义的更清晰。 ? 3.易于维护:Python的成功在于它的源代码是相当容易维护的。 ? 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。 ? 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。 ? 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。 ?7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。 ?8.数据库:Python提供所有主要的商业数据库的接口。 ?9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。 ?10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

Python基础入门课程-学习笔记

Python基础入门课程 --学习笔记 近期忽然有点迷上了爬虫Python,可能原因是最近人工智能,深度学习炒的比较热火有关。所以在网上搜了一大圈,想找点基础教程看看,发现还真不少,不过还真没有发现比较适合我这种菜鸟的教程,要么是英文的,要么一开始就讲的比较深,连测试环境都搭建不起了。让人一看就有点畏难放弃了。最后终于发现了唐老师的视频教程,好了,废话不多说,我就把我最近一段时间的学习笔记给大家分享一下。 要想学习Python,首先要搭建测试环境。本教程所用的环境如下: 一、测试环境: 系统:64位win7中文版 浏览器:Google Chrome,尽量不要用IE浏览器,测试中可能不能使用。 Python:Anaconda3-4.3.1-Windows-x86_64.exe Python可以自行通过Baidu自行搜索下载安装即可。 二、Python安装: 如果你能下载到上面的版本,直接双击运行安装即可,可以更改安装路径到D盘,因为占用空间比较大。我就是安装到D盘。安装完成后你就可以在开始菜单-所有程序-Anaconda3找到Jupyter Notebook。本次教程所有脚本全部在该notebook中运行和测试。

三、入门学习: 如果你顺利看到这里,并能在你的电脑上看到上面的截图,那么恭喜你,你已经成功的拥有了本次学习测试的环境。 1、打开Jupyter notebook。 路径:开始菜单-所有程序- Anaconda3找到Jupyter Notebook单击打开, 界面如下。如能打开Dos窗口,不能出现下面的截图,请尝试安装Google Chrome,并设置成默认浏览器即可解决。 单击上图中的New,从下来菜单中选择Python 3即可打开代码编辑窗口。 如下两图:

python_webdriver_自动化测试实战

python webdriver 项目实战

第5章测试模型与测试脚本优化 第一节、测试模型介绍 线性测试 通过录制或编写脚本,一个脚本完成用户一套完整的操作,通过对脚本的回放来进行自动化测试。这是早期进行自动化测试的一种形式;我们在上一章中练习使用webdriver API 所编写的脚本也是这种形式。 脚本一 脚本二

通过上面的两个脚本,我们很明显的发现它的问题: 一个用例对应一个脚本,假如界面发生变化,用户名的属性发生改变,不得不需要对每一个脚本进行修改,测试用例形成一种规模,我们可能将大量的工作用于脚本的维护,从而失去自动化的意义。 这种模式下数据和脚本是混在一起的,如果数据发生变也也需要对脚本进行修改。 这种模式下脚本的可重复使用率很低。 模块化与库 我们会清晰的发现在上面的脚本中,其实有不少容是重复的;于是就有了下面的改进。 login.py quit.py 测试用例:

注意,上面代码并非完整代码,不能运行。 通过上面的代码发现,我们可以把脚本中相同的部分独立出来,形成模块或库;当脚本需要进行调用。这样做有两个好处: 一方面提高了开发效率,不用重复的编写相同的脚本;另一方面提高了代码的复用。 数据驱动 数据驱动应该是自动化的一个进步;从它的本意来讲,数据的改变(更新)驱动自动化的执行,从而引起结果改变。这显然是一个非常高级的概念和想法。 其实,我们能做到的是下面的形式。 d:\abc\data.txt

图4.x #coding=utf-8 from selenium import webdriver import os,time source = open("D:\\abc\\data.txt", "r") values = source.readlines() source.close() #执行循环 for serch in values: driver = webdriver.Firefox() driver.get(".xxxx.") driver.find_element_by_id("kw").send_keys(serch) ..... 不管我们读取的是txt 文件,还是csv、excel 文件的之类,又或者是数组、字典函数。我们实现了数据与脚本的分离,换句话说,我们实现了参数化。我们仍一千条数据,通过脚本的执行,可以返回一千条结果出来。 同样的脚本执行不同的数据从而得到了不同的结构。是不是增强的脚本的复用性呢! 其实,这对开发来说是完全没有什么技术含量的;对于当初QTP 自动化工具来说确是一个买点,因为它面对的大多是不懂开发的测试。

python学习笔记

高级编程语言的分类: 编译型(C,C++等): source code ——compiler——object code——executor——output 解释型(basic,Python等): source code——interpreter——output Python是现代编程语言: 面向对象; 支持泛型设计; 支持函数式编程; ?对象和对象类型 ?Python中所有类型都是以对象的形式存在 五种基本对象类型: 字符串 str 整数 int 浮点数 float 布尔数 bool 复数 complex type函数查看对象类型; Python中除了十进制数,其他进制的数只有字符串类型; 浮点数有精度损失,因此要区分整数和浮点数; ?Python内置了类型转换函数: int() 函数可将二进制、八进制、十六进制转换成十进制的整型;int('1111',2) chr() 函数将整型转换为字符;#Python没有char类型 ord() 将字符转换为整型; hex() 将十进制转换为十六进制; oct() 将十进制转换为八进制; bin() 将十进制转换为二进制; ?运算符与表达式

算术运算符 % 求余 ** 指数运算 / 向下取整数;如有一个数为浮点数,则结果为浮点数;若是两个整数相除,则结果还是取整数; 自动类型转换 若参与运算的两对象类型相同,则结果类型不变; 若类型不同,按以下规则进行自动类型转换: bool ——> int ——> float ——> complex math模块 import math #引入模块 dir(math) #查看模块函数 help(math.sin) #查看模块中函数的帮助 关系运算符 == 表示等于 != 或 <> 表示不等于 【关系运算符返回True or False】 逻辑运算符 and, or, not 【逻辑运算符返回满足条件的结果】12 and 45返回12,12 or 45返回45 运算符优先级 括号() 一元运算(正负) + - 幂次 ** 算术运算 * / % // 算术运算(加减) + - 比较运算 == != <> <= >= 逻辑非 not 逻辑与 and 逻辑或 or 赋值运算 = *= /= += -= %= //= 变量 标识符(Identifier):变量、函数、模块等的名字 变量的赋值:赋值运算符、增量赋值运算符如+= 标准(键盘)输入: raw_input([prompt]) 读取键盘输入,将所有输入作为字符串看待; 示例:radius = float(raw_input('Radius:')) 标准(控制台)输出:

PYTHON自动化测试框架

之前有介绍过selenium的自动化测试框架,随着Python这种脚本语言的强大功能越来越被广大的程序员所重视,这种之前在国内流行度不高的语言近来气势高涨。各种第三方模块层出不穷。这里Jason介绍下之前用过的python自动化测试的一个框架PAMIE,留下点memory。 PAMIE(Python Automated Module For Internet Explorer),PAMIE它与selenium差不多,能让你如同写JS一样来操作IE浏览器。包括自动启动,访问链接,设置文本框值,获取按钮,执行点击事件,甚至执行页面JS方法等等。 首先我们需要PAMIE Package和您python版本对应的python win32扩展。 PAMIE我们能从这里下载。 python win32扩展我们能从这里下载。 在PAMIE压缩包中有相关的docs文件,介绍了PAMIE的API使用说明。2.X版本与3.x版本在引用的时候有稍许差异。这里简单的举个例子。 打开网页相关的网页: ie.navigate(‘url’) doc化ie frame然后运行相应的脚本 mainFrame=ie.getFrame(‘main’) pwindow=mainFrame.document.parentWindow pwindow.execScript(‘XXXX’) 通过DOM得到或者设置相应的值 doc.getElementById(‘XXXX’).value=XXXXX 填文本框 ie.setTextBox(‘firstname’,'FirstName’) ie.setTextBox(‘lastname’,'LastName’) 选择下拉菜单: ie.selectListBox(‘state’,”MS”) 方形选择框: ie.setCheckBox(‘cxbx’,1)#123或*号等都是“勾选”的意思”空字符串代表取消选择 圆形选择框: 这里选择Jazz ie.setRadioButton(“music”,”Jazz”)#music是这个选择列表的名字,从网页源代码里找出 最后提交按钮 ie.clickButton(“Submit”)

python基础教程pdf

python基础教程pdf 1-3天内容:为Linux基础命令 4-13天内容:为Python基础教程14-15 天内容:为飞机大战项目演练 第一阶段(1-3天): 该阶段首先通过介绍不同领域的三种操作系统,操作系统的发展简史以及Linux系统的文件目录结构让大家对Linux系统有一个简单的认识,同时知道为什么要学习Linux命令。然后我们会正式学习Linux 命令 1. 文件和目录命令:ls,cd,touch,mkdir,rm 2. 拷贝和移动命令:tree,cp,mv 3. 文件内容命令:cat,more,grep 4. 远程管理命令:ifconfig,ping,SSH的工作方式简介以及ssh命令

5. 用户权限及用户管理命令:chmod,chgrp,useradd,passwd,userdel 6. 软件安装及压缩命令:apt简介及命令,tar,gzip压缩命令,bzip2压缩命令 7. vim的基本使用 第二阶段(4-10天) 该阶段我们正式进入Python这门语言的学习,首先通过了解Python 语言的起源,Python语言的设计目标,Python语言的设计哲学,Python语言的优缺点和面向对象的基本概念,以及Python语言的执行方式,还有Python集成开发环境PyCharm的使用为我们接下来的学习做铺垫。 然后我们会学习int,string,float三种简单的变量类型,变量间的计算,变量的输入输出,if判断语句,while循环语句,for循环语句,break和continue的使用,函数的基本使用,模块的使用,列表,元组,字典三种高级变量,字符串的常用操作。

Python学习笔记

第二章变量和简单数据类型 在文档——设置文件编码——Unicode中选择utf-8即可。只是每个文档都需要重新设置。 另外如果你用的字体不支持中文也不行,geany不能给中文和英文分别设置字体。Python 2 首行或第二行用# coding:utf-8 在开头加上#coding=gbk或者#coding=utf-8试试 一.概念 1.变量的命名和使用:5条 2.在程序中可随时改变变量的值,而Python将始终记录变量的最新值。 3.在python中,每一句代码都应该顶格写 4.字符串就是一系列字符。在Python中,用引号扩起的都是字符串。 二.方法——修改字符串的大小写 1.title()以首字母大写的方式显示每个单词;字符串/变量.title() 2.upper()将字符串改为全部大写 3.lower()将字符串改为全部小写 三.合并字符串 1.Python使用加号(+)来合并字符串 2.使用制表符或换行符来添加空白 3.要在字符串中添加制表符,可使用字符组合\t,即在字符串前加\t。 4.要在字符串中添加换行符,可使用字符组合\n,即在字符串前加\t。 四.方法——删除空白 1.要确保字符串末尾没有空白,可使用方法rstrip();字符串/变量.rstrip() 注:然而这种删除是暂时的,要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中。例如:favorite=’python ’; favorite_language=favorite_language.rstrip() ; print(favorite_language) 2.要确保字符串开头没有空白,可使用方法lstrip();字符串/变量.lstrip() 3.同时删除开头和末尾的空白,可使用方法strip() 五.数字 1.整数(int):在Python中可以对整数执行加减乘除运算。 Python使用两个乘号表示乘方;Python还支持运算次序,即用括号来修改运算次序。 2.浮点数:使用浮点数时无需考虑其行为,你只需输入要使用的数字即可。 3.使用函数str()避免类型错误:在字符串中使用整数(int)时,需要显示地指出你希望Python将这个整数用作字符串。为此,可调用函数str():即str(整数)。 第三章列表简介 一.访问列表元素

自动化测试框架安装及使用_Python

自动化测试框架的安装及使用 Python + Nosetests + Webdriver + Eclipse 目录 自动化测试框架的安装及使用 (1) Python + Nosetests + Webdriver + Eclipse (1) 1 Python + Nosetests安装及配置 (2) 1.1 Python安装,以Windows为例 (2) 1.2 Python配置 (2) 1.3 Python插件安装 (2) 1.3.1 setuptools安装 (2) 1.3.2 pip安装(可选安装,如需在线安装selenium,则需要安装) (3) 1.3.3 Nosetests安装 (3) 1.3.4 nose-testconfig安装 (3) 1.3.5 Unittest 安装 (3) 1.3.6 requests安装 (4) 1.3.7 nose-selenium-0.07安装 (4) 1.3.8其他插件安装 (4) 2 Webdriver 安装 (4) 2.1 Selenium Webdriver安装 (4) 2.2 Chrome Webdriver安装 (5) 2.3 IE Webdriver安装 (5) 3 Eclipse安装 (5) 4框架使用说明 (7) 4.1代码目录结构 (7) 4.2 使用说明 (8)

1 Python +Nosetests安装及配置 下面所有安装均以离线安装为例(考虑公司网络问题),以下所有安装文件均可从“/hjqa/06 技术分享/03 Selenium/automation”中获取 1.1 Python安装,以Windows为例 获取python-2.7.6.msi或者python-2.7.5.msi(/hjqa/06 技术分享/03 Selenium/SeleniumInstall/Python_pack)双击msi文件安装即可 1.2 Python配置 右单击我的电脑(或计算机)->属性->高级->环境变量,在系统变量中找到PATH变量并编辑,添加Python安装路径到PATH变量(如:C:\Python27;) 打开cmd窗口,运行python,显示如下图: 1.3Python插件安装 1.3.1 setuptools安装 目的:为安装其他插件做准备 获取setuptools-3.3.zip,拷贝setuptools zip包到C盘根目录解压,然后打开cmd窗口,切换路径至setuptools-3.3,运行python setup.py install,如下图所示 安装完成后,可以在C:\Python27\Lib\site-packages下面找到setuptools文件夹及相

Python基础学习笔记

P y t h o n基础学习笔记基于《Python语言程序设计基础(第2版)》 第一部分初识Python语言 第1章程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性。 计算机技术发展阶段: 1.第一阶段:1946-1981年,“计算机系统结构阶段”。 2.第二阶段:1982-2007年,“计算机网络和视窗阶段”。 3.第三阶段:2008年至今,“复杂信息系统阶段”。 4.第四阶段:月20年后某个时期开始,“人工智能阶段”。 1.2程序设计语言 1.2.1程序设计语言概述 机器语言:直接使用二进制代码表达指令,可被计算机硬件直接识别和执行。 不同计算机结构的机器指令不同。 汇编语言:使用助记符对应机器语言中的指令,可直接操作计算机硬件。不同计算机结构的汇编指令不同。 机器语言和汇编语言都直接操作计算机硬件并基于此设计,统称“低级语言”。 高级语言:用更接近自然语言的方式描述计算问题。代码只与编程语言有关,与计算机结构无关。 1.2.2编译和解释

高级语言按执行方式可分为采用编译执行的静态语言和采用解释执行的脚本语言。 编译是将源代码转换成目标代码的过程。 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。 1.2.3计算机编程 我学习Python的原因: 1.通过编程实现自动化,提高效率。 2.通过编程了解一个新的广阔世界。 学习一门编程语言(重点在于练习) 1.掌握该语言的语法 2.结合问题设计程序结构 3.掌握解决问题的能力 1.3Python语言概述 1.3.1 Python语言的发展 Python语言是一个语法简洁、跨平台、可扩展的开源通用脚本语言。 Python语言诞生于1990年,创世人为Guido。 2000年10月,Python 2.0正式发布,2010年,Python 2.x系列发布最后一版(2.7)。 2008年12月,Python 3.0正式发布,解释器内部采用完全面向对象的方式实现,代价是3.x系列版本无法向下兼容2.x系列的既有语法。 Python 2.x已经是遗产,Python 3.x是这个语言的现在和未来。 1.3.2编写Hello程序

Python 自动化测试部署中单元测试框架unittest

Python 自动化测试部署中单元测试框架unittest 1.test fixture a)测试准备前要做的工作:setUp() 作测试用例的准备工作,包括需要运行某个测试用例所需要的前提条件,在mqtt 的测试中,包括了登陆django_web页面,数据库中数据的准备,连接ssh,以及启动agent和app。该方法在类:class FunctionMqtt_Login中 b)测试执行完后要做的工作:tearDown() 对于以后的TestCase留下一个干净的环境,再mqtt的测试中,包括了关闭anget 以及app。该方法在类:class FunctionMqtt_Logic中 2.test case(测试案例) 最小的测试单元 在mqtt的测试中,test case 包括了 def test_a_agent_login_01。。。。。。等test case。 该test case的方法在类:class FunctionMqtt_Logic中 3.test suite(测试套件) 测试案例的集合 在mqtt测试中, def _FM_Login_suite(suite): suite.addTest(FunctionMqtt_Login("test_a_agent_login_01")) ........ return suite 4.test runner(测试运行器) 测试执行的组件 在mqtt测试中, 通过调用test suite,从而运行其中的test case: suite_PM_Login = PerformMqttLogin._PM_Login_suite(suite) test_suite = suite_PM_Login runner = xmlrunner.XMLTestRunner(output='test-reports/%s' % branch) runner.run(test_suite) 一个测试用例的基本测试流程: 测试前准备环境的搭建(setUp)---> 执行测试代码(runner)---> 测试后环境的还原(tearDown) 一个TestCase的实例就是一个测试用例,就是上面的一个完整的测试流程 多个测试用例集合在一起,就是Test suite。 该框架的基本测试运行流程: 测试前准备环境的搭建(setUp)---> 加载TestCase到TestSuite ---> TextTestRunner来运行TestSuite --->测试后环境的还原(tearDown)

相关文档
最新文档