自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 python环境配置

1.windows平台安装python用浏览器打开网址访问https://www.python.org/downloads/windows/下载到本地安装环境变量配置:右键点击"计算机",然后点击"属性" 然后点击"高级系统设置" 选择"系统变量"窗口下面的"Path",双击即可! 然后在"Path"行,添加python安装路径即可(我的D:\Python32),所...

2019-05-20 11:37:06 149

原创 常用的断言方法

断言表示为一些布尔表达式,编写代码时程序员总是会在某些特定点做出一些假设,来判断程序是否达到预期。断言为真时,表示达到预期,否则未达到预期。而对于自动化测试人员来说,借助断言能更好的检测对象是否满足测试期望。在单元测试过程中必须使用断言。unittest单元测试框架中的TestCase类提供了很多断言方法,便于检验测试是否满足预期结果,并能在断言失败后抛出失败的原因。 ...

2019-03-18 10:33:31 4113

原创 批量执行测试模块

之前写的都是针对同一测试模块来展开的测试运行,现在来了解unittest单元测试框架提供的批量执行测试模块方法,官方称之为‘测试发现’。unittest单元测试框架支持简单的测试发现,即可以自动发现并执行给定目录下的满足规则的测试模块。为了更好地匹配测试模块,给定目录下所有的测试文件都必须是模块或者是能从工程的顶层目录导入的包,也就意味着所有的文件明必须是有效的标识符,同时目录下需要被执行的测试脚...

2019-03-06 17:58:05 500

原创 命令行模式执行测试用例

unittest框架支持命令行模式运行测试模块、类,甚至单独有效的测试方法。通过命令行模式可以传入任何模块名组合、有效的测试类或者测试方法的参数列表。详细使用方法见下面实例:1.通过命令行直接运行整个测试模块命令格式:python -m unittest test_module1 test_module2...实战步骤:(1)cmd下切换当前工作目录到python工程Calc目...

2019-03-01 16:22:38 1783

原创 忽略某个测试方法

在批量执行测试用例时,可能会遇到某些测试用例不需要执行,但又想保留测试代码,除了可以注释掉代码外,unittest框架提供了一个更简便的注解方法来忽略那些暂时不需要执行的测试用例,单元测试框架在执行框架中遇到被标上忽略的注解的用例时自动跳过。忽略测试用例分为无条件忽略和有条件忽略,详见代码。示例代码:import randomimport unittestimport syscl...

2019-02-14 16:04:34 509

原创 按照特定顺序执行测试用例

通过TestSuite类可以改变测试用例执行顺序。测试代码:在PyCharm中新建工程,工程构图如下:                             Calc.py文件class Calc(object): def add(self,x,y,*d): #计算加法 result = x + y for i in...

2019-01-25 15:55:10 2017

原创 测试集合

在自动化测试的执行过程中,通常会有批量运行多个测试用例的需求,此需求称为运行测试集合(Test Suit)。将功能相关的测试用例组合到一起称为一个测试用例集,unittest框架通过TestSuit类来组装所有的测试用例集。也就是说,使用测试集合可以同时执行同一.py文件中的多个测试用例类。加载测试集合步骤如下:(1)TestLoader(测试用例加载器)根据传入的参数获取相应的测试用例的...

2019-01-25 10:48:15 718 1

原创 测试用例

软件测试中最基本的组成单元是测试用例,unittest框架通过TestCase类来构建测试用例,并要求所有自定义的测试类都必须继承该类,它是所有测试用例的基类,传入一个测试方法名,将返回一个测试用例实例。TestCase的子类中实现测试用例的代码既可以单独运行,也可以和其他测试用例构成测试用力集,然后批量执行。TestCase作为unittest单元测试框架中测试单元的运行实体,单元测试脚本编...

2019-01-23 14:25:19 144

原创 单元测试框架的使用

unittest框架拥有支持自动化测试、测试用例间共享setUp(实现测试前的初始化工作)和shutDown(实现测试结束后的清理工作)代码块,集合所有的测试用例并且将测试结果独立展示在报告框架中的特性,在一组测试中,通过unittest框架提供的类很容易支持它的这些特性。一、unittest框架的四个重要概念test fixture(测试固件)      一个test fixture代...

2019-01-22 10:46:47 732

原创 selenium RC和webdriver的实现原理

1.Selenium RC的实现原理selenium RC是selenium 的远程控制(又称selenium 1.0),实现原理如下图:                                 selenium 1.0的自动化测试执行步骤如下:(1)测试人员基于selenium支持的编程语言编写好脚本程序(2)测试人员执行测试程序(3)测试脚本程序发送访问网站的H...

2019-01-21 14:30:56 371

原创 selenium 模拟鼠标右键

当我用ActionChains方法时,会报以下错误: 不知道是什么问题问题已解决:是因为页面等待时间太短

2019-01-14 10:55:36 830

原创 实践过程中遇到的小问题(一)

一、元素定位,定位到了元素但是不跳转未设置等待时间 设置了隐式等待时间,还要再加显式等待时间 看看页面元素是否有frame或者iframe:driver.switch_to_frame(0),第几个frame框架括号里就写数字几 需要手写xpath进行定位二、下拉列表1.导入(此方法只适合select元素的,而不适合网页标签)from selenium.webdriver.s...

2019-01-02 15:41:49 1152

原创 测试类

(一)、各种断言的方法python在unittest.TestCase类中提供了很多方法。表a描述了6种常用的断言方法:方法 用途 assertEqual(a,b) 核实a==b assertNotEqual(a,b) 核实a!=b assertTrue(x) 核实x为True assertFalse(x) 核实x为False asse...

2018-12-27 14:45:55 593

原创 测试代码

编写函数或类是,还可以为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。接下来将要学习如何使用python模块unittest中的工具来测试代码。一、测试函数要学习测试,得有测试的代码。下面是一个简单的函数,他接受名和姓并返回整洁的姓名:name_function.pydef get_formatted_name(first,last): full_n...

2018-12-21 10:48:02 7176

原创 存储数据

很多程序要求用户输入某种信息,如让用户存储游戏首选项或提供可视化的数据。不管你专注的是什么,程序都把用户提供的信息存储在列表和字典等数据结构中。用户关闭程序时,你几乎总需要保存他们提供的信息;一种简单的方式是使用json存储数据。模块json让你能够将简单的python数据结构转储到文件中,并在程序再次运行时加在该文件中的数据。你还可以使用json在python程序之间分享数据。更重要的是,j...

2018-12-19 15:21:02 122

原创 异常

python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让python不知所措的错误时,他都会创建一个异常对象。如果你编写了处理异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。异常是使用try-except代码块处理的。try-except代码块让python执行指定的操作,同时告诉python发生异常时该...

2018-12-17 19:01:29 117

原创 文件(写入文件)

保存数据最简单的方式之一是将其写到文件中。通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:你可以在程序结束后查看这些输出,可与别人分享输出文件,还可以编写程序来讲这些输出读取到内存中并进行处理。一、写入空文件write_message.pyfilename = 'programming.txt'with open(filename,'w') as file...

2018-12-14 17:02:34 1004

原创 文件(一)

1.open()函数:要以任何形式使用文件都得先打开文件,open()函数接受一个参数–要打开的文件名2.python在当前执行的文件所在的目录中查找指定的文件3.关键字with在不需要访问文件后将其关闭4.在这个程序中调用了open函数,但是没有调用close函数;也可以调用open,close来打开关闭这个文件,但是如果程序存在bug,导致close语句未执行,文件将不会关闭,可能会导致...

2018-12-14 16:08:59 180 2

原创 继承

一、子类的方法__init__()创建子类实例时,python首先需要完成的任务是给父类的所有属性赋值。为此子类的方法__init__()需要父类施以援手。例如下面模拟电工汽车,电动汽车是一种特殊的汽车,因此我们需要在前面创建的Car类的基础上创建新的类ElectricCar.class Car(): --snip--class ElectricCar(Car): ...

2018-12-14 14:08:17 179

原创

一、创建和使用类1.创建Dog类class Dog(): """一次模拟小狗的简单尝试""" def __init__(self,name,age): """初始化属性name和age""" self.name = name self.age = age def sit(self)

2018-12-11 15:25:51 99

原创 将函数存储在模块中

import语句允许在当前运行的程序文件中使用模块中的代码块。一、导入整个模块要让函数是可导入的,得先创建模块。模块是扩展名为.py的文件,包含要导入到程序中的代码。pizza.pydef make_pizza(size,*toppings): print("\nMaking a " + str(size) + "-inch pizza with the followin...

2018-12-06 15:12:04 274

原创 返回值和传入参数

一、返回简单值def get_formatted_name(first_name,last_name): fullname = first_name+' '+last_name return fullname.title() musician = get_formatted_name('jimi','hendrix')print(musician)运行结果:Ji...

2018-12-06 14:27:54 503

原创 传递实参

"""像函数传递参数"""def greet_user(username): print("hello,"+username.title()+"!") greet_user('jeese')注:形参:函数完成工作时所需的一项信息 greet_user()中的username就是形参实参:是调用函数时传递给函数的信息, greet_user(‘jeese’)中的j...

2018-12-05 16:21:20 459

原创 嵌套

一、字典列表

2018-12-04 18:05:59 86

原创 字典

alien_0 = {'color':'green','point':5}print(alien_0['color'])print(alien_0['point'])运行结果:green5一、使用字典字典是一系列键-值对,每个键都与一个值关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。键-值对是两个相关联的值。指定键时,python将返回与之...

2018-12-03 18:08:10 76

原创 元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对于处理网站的用户列表或游戏中的角色至关重要。然而有时候,需要创建一组不可修改的元素—元组一、定义元组元组使用圆括号,定义元组以后就可以使用索引来访问其元素dimensions = (200,50)print(dimensions[0])print(dimensions[1])运行结果:20050二、遍历元...

2018-12-03 15:51:15 131

原创 列表

列表是由一系列按特定顺序排列的元素组成。可以创建包含字母表中的所有字母、数字0-9或所有家庭成员姓名的列表;也可以将任何东西加入列表,其中的元素之间可以没有任何关系。给列表指定一个复数的名字是个不错的选择。在python中用方括号[]来表示列表,并用逗号来分割其中的元素。 访问列表元素列表是有序集合,因此要访问列表的任何元素,需要知道元素的位置或索引。要访问元素,指出列表名称和元素的索...

2018-12-03 14:28:58 169

原创 python变量和简单数据类型

变量的命名和使用变量名只能包含字母、数字、下划线。变量名可以是字母或下划线开头,但不能以下划线打头。变量名不能包含空格,但是可以使用下划线来分隔其中的单词不要使用python关键字和函数名做变量名变量名应该简单又具有描述性慎用小写字母i和大写字母O,因为会被人看成数字1和0字符串字符串就是一系列的字符,用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号 使用方法...

2018-11-23 15:54:43 122

原创 设置元素等待

大多数web应用程序应用AJAX技术,浏览器加载页面时,页面元素可能并不是同时加载完成,这给元素定位增加了难度,可以通过元素等待改善这种问题一、显示等待显示等待使wbedriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutExecption)from selenium import webdriverfrom selenium.webdriver.comm...

2018-11-22 16:38:50 168

原创 获得验证信息

用的最多的验证信息为URL,TEXT,TITLE以百度为例from selenium import webdriverurl = "https://www.baidu.com/"driver = webdriver.Chrome()driver.get(url)driver.maximize_window()### 获取当前页面的titletitle = driver.title...

2018-11-22 10:09:11 142

原创 模拟键盘操作

以百度为例from selenium import webdriverfrom selenium.webdriver.common.keys import Keysdriver = webdriver.Chrome()driver.get("https://www.baidu.com/")driver.maximize_window()#输入框输入内容driver.find_e...

2018-11-21 15:21:54 1557

原创 鼠标事件

click()可以模拟鼠标单击,但是现在web产品有了更多的交互,如鼠标右击、双击、悬停等操作,在webdriver中这些鼠标操作都封装在ActionChains类ActionChains提供了鼠标操作的常用方法:1.perform():执行所有ActionChains中存储的方法2.context_click():右击3.double_click():双击4.drag_and_drop...

2018-11-21 11:13:19 126

原创 WebElemnet接口常用方法

1.size:返回元素尺寸2.text:获取元素的文本3.get_attribute(name):获取元素属性4.is_displayed():设置该元素是否用户可见以百度首页为例:from selenium import webdriverdriver = webdriver.Firefox()driver.maximize_window()driver.implicitly_w...

2018-11-20 10:48:45 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除