如何使用python进行python自动化测试实例

rfyiamcool 的BLOG
用户名:rfyiamcool
文章数:423
评论数:2196
访问量:1341413
注册日期:
阅读量:5863
阅读量:12276
阅读量:365293
阅读量:1060347
51CTO推荐博文
python selenium这次咱们讲讲selenium 自动化web测试Selenium 及其实现原理Selenium 的主要功能包括:1)测试与浏览器的兼容性:测试应用程序能否兼容工作在不同浏览器和操作系统之上。2)测试系统功能:录制用例自动生成测试脚本,用于回归功能测试或者系统用例说明。简而言之,Selenium 就是一款可以录制用户操作,帮助 Web 测试人员简化重复劳动的工具。上面的话,很官方:现在说说,对于我来说能干啥? 第一点是爬数据,因为很多的网站的接口不好找,甚至经过他们的加密.这样的时候, 咱们爬数据就不好搞了. 前提是需求不大,毕竟selenium的消耗还是很大的.第二点是解除繁琐的操作,如果对方没有给你接口,那你就干他 ? 要不就手动操作? 以和为贵嘛... 可以用用selenium 搞搞....第三点是真的测试了,咱们可以把要做的事情给录制下,搞定规则后,让他自己去运行,咱们就光看就行了. 边看边喝可乐... 真是爽歪歪这里简单说下web测试的基本流程。我们启动浏览器,打开一个网页,做一些事,包括点某个链接,按钮,图片,或者填写一个表单然后提交,然后检查一下结果是否正确,最后看一下是不是有些数据要清理掉以便下次测试。总结一下一个测试的流程大致如下:准备(启动浏览器)-》载入测试页-》完成动作流-》验证结果-》测试清理(关闭浏览器,删除某些数据)我们写Selenium测试的时候也事一样的步骤。这些行为用selenium都可以实现的!安装比较简单:pip install selenium浏览器支持好多,ie firefox chrome...默认不支持 chrome的,需要安装 chrome的调用驱动chrome 驱动下载这里测试的是自动打开 xiaoruicc !这里测试的是自动打开阿里测的界面,然后输入qq.com然后继续点击.自动登陆163邮箱,然后点开收件箱 ~#coding:utf-8
import sys
from selenium import webdriver
url = "http://" + sys.argv[1]
driver = webdriver.Chrome()
driver.get(url)
#type the username
element = driver.find_element_by_id("idInput")
element.send_keys('')
element = driver.find_element_by_id("pwdInput")
element.send_keys('')
element = driver.find_element_by_id("loginBtn")
#element = driver.find_element_by_link_text('登陆')
element.click()
element = driver.find_element_by_id("_mail_component_2_2")
element.click()
#type the password
#element.submit()
navigationStart = driver.execute_script("return window.performance.timing.navigationStart")
responseStart = driver.execute_script("return window.performance.timing.responseStart")
domComplete = driver.execute_script("return window.performance.timing.domComplete")
backendPerformance = responseStart - navigationStart
frontendPerformance = domComplete - responseStart
print "WebPage: %s" % url
print " Back End: %s" % backendPerformance
print " Front End: %s" % frontendPerformance
#driver.quit()selenium 有很多很多的功能,大家自己看官方文档吧.... 有问题提出来,咱们一块搞~本文出自 “” 博客,谢绝转载!
了这篇文章
类别:┆阅读(0)┆评论(0)
10:32:23 17:03:13 17:38:32 17:38:41 23:37:11 08:41:22 11:21:25 12:05:51 13:11:57 23:57:30 15:04:32 16:53:03 15:41:21 15:43:58下次自动登录
现在的位置:
Python BDD自动化测试框架初探
全称Behavior Driven Development,译作"",是基于 (Test Driven Development 测试驱动开发)的软件开发过程和方法。
可以让项目成员(甚至是不懂编程的)使用自然语言来描述系统功能和场景,从而根据这些描述步骤进行系统自动化的测试。(详见附录4.1)
2. 常用BDD框架介绍
目前常用的BDD测试框架有Ruby中的Cucumber,中的Behave、Lettuce及Freshen等。
基本的流程如下图所示(Lettuce官方图):
简单来说就是"写用例-&跑测试-&看结果-&写实现-&看结果"这样的一个循环。
Behave网站列出了上面提到的几个框架的对比(详见附录4.2),基于此原因,本文选择来介绍 BDD框架。
3. Behave示例
3.1 Behave安装
pip install behave # 全新安装
pip install -U behave # 更新
3.2 基础知识
3.2.1 语法
上文提到的几种BDD框架均使用 语法,这是一种简单易懂的语言,使用关键字来定义系统特征和测试。
使用Gherkin语法编写的feature文件基本结构如下:
Title (one line describing the story/feature)
Scenario: Title1 (for Behaviour 1)
[context or setup]
[some more context]...
[event occurs]
[expected outcome]
[another outcome]...
Scenario: Title2 (for Behaviour 2)
3.2.2 断言模块
使用BDD测试框架前,需要选择一个好用的断言模块。有很多可用的断言模块(下表),本文我们选择hamcrest模块为例。
3.2.3 目录结构
Behave项目的目录格式如下:
+-- features/
-- Contains all feature files.
+-- steps/
+-- step_*.py
-- Step definitions for features.
+-- environment.py
-- Environment for global setup...
+-- tutorial*.feature
-- Feature files.
3.3 Behave示例
我们以fibnacci数列计算为例,来了解下框架结构及如何使用(网上基本都是以阶乘或WEB页面为例,为显示本文的原创性,我们以fib数列为例)
首先,比较pythonic的实现fib数列的代码如下:
# -*- coding:utf-8 -*-
def fibs(num):
for i in range(num):
print list(fibs(10))
使用behave的详细步骤如下:
1. 新建目录fib,在此目录下新建文件fib.feature,内容如下
Feature:Calc Fib
In order to introduce Behave
We calc fib as example
Scenario: Calc fib number
Given we have the number 10
when we calc the fib
then we get the fib number 55
2. 新建目录fib/steps,在此目录下新建文件fib.py,内容如下
from behave import *
from hamcrest import *
def fibs(num):
for i in range(num):
@given('we have the number {number}')
def have_number(context,number):
context.fib_number = int(number)
@when('we calc the fib')
def calc_fib(context):
context.fib_number=list(fibs(context.fib_number))[-1]
@then('we get the fib number {number}')
def get_number(context,number):
context.expected_number = int(number)
assert_that(context.fib_number, equal_to(context.expected_number),&Calc fib number: %d& %context.fib_number)
这段Python代码主要分为三部分:
@given部分将输入的number=10转为整形并存入变量中
@when部分调用fib函数,计算fib数列值
@then 部分将计算出的fib值与预期值进行断言比较,判断结果是否相等
3. 切换到fib目录,执行behave命令,结果如下
4. Scenario Outlines场景大纲
有时相同的一个Scenario需要在很多不同的参数情况下运行,为了避免写过多重复的Scenario ,我们需要使用Scenario Outlines,如fib.feature文件内容可以修改如下:
Feature:Calc Fib
In order to introduce Behave
We calc fib as example
Scenario Outline: Calc fib number
Given we have the number &number&
when we calc the fib
then we get the fib number &fib_number&
Examples: Some Numbers
| fib_number |
执行结果如下:
5. 更多的beahve示例可以参考附录4.4
作者只对Python BDD框架进行了简单了解和学习,没有在实际的项目中进行实践,本文只算是一篇BDD自动化测试的入门。
各位若想更深入了解BDD,可参考如下网页资料:
4.1 BDD详细介绍:
4.2 常用测试框架对比:
4.3 Hamcrest断言模块:
4.4 Behave示例:
【上篇】【下篇】
您可能还会对这些文章感兴趣!
百度站内搜索114网址导航【图文】自动化测试 - Selenium WebDriver with Python - 91TESTing - 全网更专业的软件测试学习分享社区 - Powered By EduSoho
全网更专业的软件测试学习分享社区 -- 微信公众号:QA_91Testing
想学自动化,不会开发?Pyhton容易学习上手,给自己一次学习的机会,加油!
开始学习课时
开始学习课时
开始学习课时
工作时间:7*24小时}

我要回帖

更多关于 python自动化测试脚本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信