python自动化测试学习笔记-1
一、什么是自动化
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。直白的就是为了节省人力、时间或硬件资源,提高测试效率,便引入了通过软件或程序自动化执行测试用例进行测试;
二、python简介
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
我们先来看一各种编程语言的类型。
机器语言:是指一台计算机全部的指令集合,计算机所使用的是由"0"和"1"组成的二进制数,二进制是计算 计算机语言机的语言的基础。
编译型语言:将源代码编译生成机器语言,再由机器运行机器码(二进制)。例如:c c++ c#
解释型语言:相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。
代码在运行的时候才进行编译,如 java 、JavaScript、Perl 、Shell、PHP、ruby、python
脚本语言:一个脚本通常是 解释执行而非编译。一开始的时候这种语言只有单一的功能,如shell用户编写linux的脚本,js用于制作网页特效
python的应用:数据挖掘(爬虫)、数据分析、自动化运维、自动化测试、后台服务器接口开发、AI、人工智能、嵌入式开发、web开发等。
python的特点:
1编写的代码质量高:采用缩进的方法,让代码的可读性更好,也很适合团队协作开发。
2提高开发的效率:简单的语法,动态的类型,不过不要认为python仅可以完成简单的任务,其实他只是让复杂的编程任务变的高效和有趣,曾经我一个搞JAVA的朋友,他完成一个任务要写几百行代码,而我只写了10几行代码,的确python这们语言是想把程序员解放出来,腾出一些时间去享受生活。
3程序的可移植性:你编写的代码可以放到几个平台上去运行,比如windows,linux,unix。
4很多标准库和第3方库:等你了解python标准库的时候,你就会觉的它的标准库太多了,而且功能和强大,从字符处理到网络处理无所不能。
5编程思想是大道至简:python希望程序员能够用最简单的方法来解决问题,化繁为简。
好了下面开始我们的python学习之旅~
三、python基础
基本概念
字符集:是一个系统支持的所有抽象字符的集合,计算机中储存的信息都是用二进制数表示的。
字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。
常用的字符集合字符编码
常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码(定长码),也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。
有时我们看到页面上的乱码,可能就是字符集不一致导致的。
变量(variable)变量就是代表某个数据(值)的名称。python是一种动态类型语言,在赋值的执行中可以绑定不同类型的值,这个过程叫做变量赋值操作,赋值同时确定了变量类型。
静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
python中变量的定义
1、变量名可以包括字母、数字、下划线,但是数字不能做为开头。例如:name1是合法变量名,而1name就不可以。
2、系统关键字不能做变量名使用
3、除了下划线之个,其它符号不能做为变量名使用
4、Python的变量名是区分大小写的,例如:name和Name就是两个变量名,而非相同变量哦。
5、中文也能定义变量名,单实际当中不这样运用
python的数据类型
1)整型——int——数字
python有5种数字类型,最常见的就是整型int,例如:a = 123 或 b = -123 等号左边是变量名,右边是要赋的值
2)布尔型——bool——用符号==表示
布尔型是一种比较特殊的python数字类型,它只有True和False两种值,它主要用来比较和判断,所得结果叫做布尔值。例如:3==3 给出True,3==5给出False
3)字符串——str——用' '或" "表示
例如:URL='www.iplaypy.com'或者name="lijing"
4)列表——list——用[ ]符号表示
例如:num=[1,2,3,4]
5)元组——tuple——用( )符号表示
例如:('d',300)
6)字典——dict——用{ }符号表示
例如:{'name':'coco','country':'china'}
实战演练
安装python,安装pycharm编码软件进行编码。
1、hello world!
python中输出函数print函数,字符串和数值类型的可以直接输出,如下
print('hello world')
print(1)
输出内容:
输出字符串内容可以用‘’,也可以用“”,当输出的字符串中包含‘’时,则字符串用“”;当输出的字符串中包含“”号时,则字符串用‘’;当输出的字符串中‘’和“”都包含时,则字符串用‘’‘ ‘’’来输出;如下
print("你真的很'帅'!")
print('你真的很"帅"!')
print(''''哇!'你真的很"帅"!''')
输出内容:
输出变量类型
x='hello world!'
print(x)
s=13
print(s)
l=[1,2,3,'p']
print(l)
格式化输出
输出的内容中包含定义的参数时,
name=input('请输入你的姓名:')
time='2017年12月19日'
print('%s欢迎光临!'%name)
输出内容
%字符:标记转换说明符的开始 ,s表示格式转换类型为字符串,f表示十进制浮点数,d表示带符号的十进制整数
当有两个输出参数的使用,在%(参数1,参数2)列出需要传参的参数名
name=input('请输入你的姓名:')
time='2017年12月19日'
print('%s欢迎光临!'%name)
print('%s欢迎光临!时间是:%s'%(name,time))
输出内容:
+的形式进行字符串拼接:
name=input('请输入你的姓名:')
time='2017年12月19日'
print('%s欢迎光临!'%name)
print(name+'欢迎光临!')
输出内容:
可以看到字符串拼接 + 的输出内容与%形式的转换是一样的;
还有一种方式更加简便快捷常用,{}的形式进行传参
name=input('请输入你的姓名:')
time='2017年12月19日'
print('%s欢迎光临!'%name)
print('%s欢迎光临!时间是:%s'%(name,time))
print(name+'欢迎光临!')
print('{}欢迎光临!时间是:{}'.format(name,time))
输出内容:
请输入你的姓名:pei
pei欢迎光临!
pei欢迎光临!时间是:2017年12月19日
pei欢迎光临!
pei欢迎光临!时间是:2017年12月19日
当参数较多时,可能会记忆混乱出现传参错误的情况,此时我们可重新定义一下传参的内容:如下实现方法
name=input('请输入你的姓名:')
time='2017年12月19日'
print('%s欢迎光临!'%name)
print('%s欢迎光临!时间是:%s'%(name,time))
print(name+'欢迎光临!')
print('{}欢迎光临!时间是:{}'.format(name,time))
print('{username}欢迎光临!时间是:{localtime}'.format(username=name,localtime=time))
输出内容:
2、条件判断基本使用方法
语法:
if 条件表达式:
语句块
例子:
如果成绩达到80分或以上,视为优秀。
成绩达到60分到80分(不包括80分),视为及格。
成绩60分以下,视为不及格。
我们输入一个分数,用if语句判断是否能打印出分数所属阶段:
score =input('请输入分数:')
if score >= 80:
print('优秀')
elif score >=60 and score<80:
print('及格')
else:
print('不及格!')
执行上面的语句,输入分数为89,看执行结果
上述结果我们看到执行报错了,str类型的与int类型不能进行比较;
因为score为一个输入类型的变量,而input函数所有形式的输入按字符串处理,如果想要得到其他类型的数据进行强制类型转化,此处我们需要对输入内容强制进行转化,如下
score =int(input('请输入分数:'))
if score >= 80:
print('优秀')
elif score >=60 and score<80:
print('及格')
else:
print('不及格!')
执行上述代码,输入分数为99,查看输出结果
输入分数为78,查看输出结果
输入分数为55,查看输出结果
2、for循环和while循环的基本使用方法
for循环
for something in XXXX:
语句块
即表示对XXXX中的每一个元素,执行某些语句块,XXXX可以是列表,字典,元组,迭代器等等。
如下
for x in range(10):
print('test')
执行查看输出结果,输入了10次test
while循环:
while 条件表达式1:
语句块
while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。while循环会每次判断 条件表达式1 是否为true,如果为true,则执行语句块,否则退出循环。
例如:
count=0
while count<3:
print('哈哈哈')
count+=
执行看一下结果
结果输出了3次‘哈哈哈’,每一次输入,count+1,直到不满足条件count<3时,退出循环。
continue和break
break:
直接退出整个循环体;
continue:
跳出本次循环,执行下一次循环。
例如上边的例子,我们加上break和continue来看一下结果
for x in range(10):
print('test')
break
执行并查看结果
我们看到for循环中添加break之后,执行一次,遇到break就退出循环了,没有继续循环。
在while中添加continue来试试:
count=0
while count<3:
count += 1
username=input('请输入您的姓名:')
if username=='小王':
print('%s,欢迎光临!'%username)
break
else:
print('您好,您重新输入!')
continue
else:
print('您好,输入次数过多!')
执行上述代码,输入姓名为:ww,查看结果
执行代码,输入姓名为:小王,查看结果
其中,字符串的比较
我们再来试一个猜数字的例子
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。
random.random
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
random.uniform
random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
random.randint
random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
random.randrange
random.randrange的函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
random.choice
random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。
random.shuffle
random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。
random.sample
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
首先需要导入random模块
import random
random_num=random.randint(1,1999)
print(random_num)
执行查看结果为 736 ,取了一个随机数。
下面来写猜数字的例子:如果7次之内猜出数字,则结束,如果错误,输入超过7次后结束。
import random # 导入random模块
random_num = random.randint(1, 500)
count = 0
while count < 7:
count += 1
num = int(input('请输入你猜的数字:'))
if num > random_num:
print('你猜的太大了')
continue
elif num < random_num:
print('你猜的太小了')
continue
else:
print('恭喜你猜对了,答案是:%s'%num)
break
执行输入相应的数字,查看结果
好了,今天先说到这里,后续继续学习。
python自动化测试学习笔记-1的更多相关文章
- python自动化测试学习笔记-10YAML
之前学习的编写测试用例的方法,都是从excel中编写接口的测试用例,然后通过读取excel文件进行接口自动化测试,这种方式我们叫做数据驱动的方式,由于excel操作起来不灵活,无法实现关联关系的接口测 ...
- python自动化测试学习笔记-9测试框架
学习了这么久的python,我们已经可以自己搭建一个简单的测试和框架了,先从简单的开始,有时我们编写接口的测试用例会用excel进行编写,以下面的接口测试用例模板为例,进行编写:
- python自动化测试学习笔记-6urllib模块&request模块
python3的urllib 模块提供了获取页面的功能. urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capat ...
- python自动化测试学习笔记-5常用模块
上一次学习了os模块,sys模块,json模块,random模块,string模块,time模块,hashlib模块,今天继续学习以下的常用模块: 1.datetime模块 2.pymysql模块(3 ...
- python自动化测试学习笔记-4常用模块
常用模块 1.os 2.sys 3.random 4.string 5.time 6.hashlib 一.os模块 os模块主要用来操作文件.目录,与操作系统无关.要使用os模块首先要导入OS模块,用 ...
- python自动化测试学习笔记-4内置函数,处理json
函数.全局变量 写代码时注意的几点事项: 1.一般写代码的时候尽量少用或不用全局变量,首先全局变量不安全,大家协作的情况下,代码公用容易被篡改,其次全局变量会一直占用系统内容. 2.函数里如果有多个r ...
- python自动化测试学习笔记-2-列表
上次我们学习了python的基本概念,了解了python的变量及数据类型,并实战了条件判断,for/while循环,字符串输出,格式化输出的一些基本用法,接下来我们继续学习其他的一些数据类型. pyt ...
- python自动化测试学习笔记-9python的日志模块
参考 logging模块,用来处理python中的日志: import logging logging.debug('debug')logging.info('info')logging.warnin ...
- python自动化测试学习笔记-unittest参数化
做接口测试的时候,当一个参数需要输入多个值的时候,就可以使用参数来实现: python中unittest单元测试,可以使用nose_parameterized来实现: 首先需要安装:pip inst ...
随机推荐
- 洛谷 1894 [USACO4.2]完美的牛栏The Perfect Stall
[题解] 其实是个二分图最大匹配的模板题,直接上匈牙利算法就好了. #include<cstdio> #include<algorithm> #define N 1010 #d ...
- 1031. Hello World for U
Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. ...
- idea 类图显示
不得不说idea java开发的神器啊,免去了自己画图的很多工作量. 打开类图快捷键:Ctrl+Alt+Shift+U
- 管理Bean的生命周期
[IOC容器中Bean的生命周期方法] 1.SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务. 2.Spring IOC容器对Bean的生命周 ...
- Leetcode 80.删除重复数组的重复项
删除重复数组的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间 ...
- 救命(洛谷 U4525)
题目背景 XS中学的校长积劳成疾,最终由于无聊而卧病在沙发.需要药(pi)水(gu)拯救他的生活. 题目描述 现在有n种药水,编号分别为1..n,能拯救校长的药水编号为n 每个药水都可以购买到,但有的 ...
- codevs——1462 素数和
1462 素数和 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 给定2个整数a,b 求出它们之间(不含a ...
- Memcached的Web管理工具MemAdmin(待实践)
Memcached的Web管理工具有很多,但是最好用的应该是MemAdmin.基于PHP5开发,所以部署时要注意环境. 介绍:http://www.junopen.com/memadmin/ 下载:h ...
- docker Cannot start container [8] System error: exec format error
docker Cannot start container [8] System error: exec format error 学习了:https://www.aliyun.com/jiaoch ...
- 服务器Hot Spare热备
Hot Spare:热备用 当一个正在使用的磁盘发生故障后,一个空闲.加电并待机的磁盘将马上代替此故障盘,此方法就是热备用.热备用磁盘上不存储任何的用户数据,最多可以有8个磁盘作为热备用磁盘.一个热备 ...