一、基础库

1、os

1.1介绍:

os库是Python标准库,常用的有路径操作、获取系统、环境变量等。在我们工作中最常用到os库中的有 获取当前路径"os.path.dirname(_ _ file _ _)" 、获取当前路径的上一层路径“os.path.dirname(os.path.dirname( _ file _ _))”、还有路径的拼接“os.path.join(目录、目录、文件)” 这些来处理一些路径的问题。

 

1.2使用:

用库之前都要先导入库 import os

获取当前路径

os.getcwd()

 获取目录下的所有文件和文件夹

获取文件和目录信息

获取当前路径

获取当前目录的上一级目录

拼接路径

比如在a1.py文件下要读取longin.txt文件时,就要先得到login.txt文件的路径,那么就要先回到当前目录的上一级目录,如何再进入config,就需要路径拼接。步骤是先获取到当前目录的上一级目录 把它放在一个变量中,然后拼接路径进入到login.txt路径, 再使用with open 来读取文件。

获取操作系统

获取环境变量

判断文件是否存在

 

2、time

2.1介绍

提供了各种与时间相关的内容。在自动化测试的时候,需要休眠代码,为了能更好的定位到元素,我们使用的就是time库中的time.sleep()。另外还有一些获取时间戳time.time()、中国时间格式time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())都是比较常用的

 

2.2使用

用库之前先导入库 import time

获取时间戳

当前时间字符串格式

 休眠

表述休眠两秒后执行操作

 

获取当前时间

 获取当前的年(月、日、时、分、秒)

中国时间格式:

3、datetime

3.1介绍

也是表示时间的,相比time会更加直观。

 

3.2使用

导入库:import datetime

获取当前时间

在当前时间的基础上添加时间

时间戳转换格式

4、json

4.1介绍

主要应用于序列化和反序列化的处理。序列化利于持久化的存储和传输数据。

python数据类型中字典、元组、列表的序列化是使用json.dumps,反序列化是使用json.loads。文件的序列化是json.dump ,文件的反序列化是json.load。

如在自动化测试中,我们使用数据驱动,把测试用到的数据分离出来,放在json文件中,那么在测试中调用json文件的数据就是一个反序列化的过程,使用json.load()并且搭配open操作文件。

 

4.2使用

pyhton对象的序列化和反序列化:

序列化:json.dumps

利于持久化的存储和传输数据,也就是把python数据类型(字典、元组、列表)转为str类型存入文件

反序列化:json.loads

就是把str类型转为python对象,用于读取数据

文件的序列化和反序列化:

进行文件的读取和保存

目的:

1、有利于持久化的保存

2、有利于传输

3、有利于维护

序列化:json.dump(目标内容,文件操作,编码处理)

反序列化:json.load(读取文件操作)

 

序列化和反序列化一般会搭配文件操作和编码一起使用,反序列需要print

 

5、hashlib

主要是涉及md5的加密算法。

加密三步:

1、先对请求参数进行排序(请求参数一般是字典类型)

2、以key做为排序,排序成key=value....格式

3、进行md5 加密

6、sys

系统相关的参数和函数。 sys 库一般用来访问和修改系统相关信息,比如查看 python 版本、系统环境变量、模块信息和 python 解释器相关信息等等。

二、测试相关的库

2.1 selenium

介绍:

WEB自动化测试的根据,支持很多主流的浏览器自动化测试,如Chrome IE Firefox,能够真实模拟用户的操作行为,比如定位我们页面的元素,对页面的元素进行一系列的操作。

导入库
对类进行实例化,指定测试的浏览器,driver为webdriver类的对象
导航到被测试的网址
使用元素定位的八大方法 来定位元素 ,进行操作
退出浏览器

 

元素定位:

find_elements_by_是类的实例方法:

id      name        class_name      xpath       css link_text       partial_link_text       tag_name

 

执行的操作:

send_keys()             #向元素输入
clear() #清空元素
get_attribute("属性")   #获取元素的某个属性对应的值
click() #点击元素
is_selected() #判断元素是否勾选
is_enabled() #判断元素是否可编辑
is_displayed() #判断元素是否可见
current_url      #获取当前页面

 

2.2unittest 标准库

介绍:

unittest库提供了创建测试用例、测试套件和批量执行测试用例的方案,有丰富的断言方法,能够判断测试用例是否通过,最终生成测试结果。

步骤

初始化 (获取浏览器驱动对象driver,打开网页、最大化浏览器、隐式等待)
测试 步骤
断言
清理(关闭浏览器)

单元测试框架包括内容:

测试固件    初始化setUp()  清理tearDown()
测试用例   TestCase
测试套件   TestSuite
测试执行   TestRunner
测试报告 TestReport

断言:

python自带断言:

assert  is/in/==

unittest框架中的断言:

self.assertEqual(A,B)
self.assertIn(A,B)
self.assertTrue
self.assertFalse

 

具体的断言:

断言错误提示信息;
断言文本信息;
断言元素是否可选 可编辑 可见;
断言页面的title;
断言页面跳转