自动化测试
没错就是我哎呀
一枚很菜的女程序猿
展开
-
自动化测试模型
概念自动化测试模型可以看作自动化测试框架与工具设计的思想。自动化测试不仅仅是单纯写写脚本运行就可以了,还需要考虑到如何使脚本运行效率提高,代码复用、参数化等问题。自动化测试模型分为四大类:线性模型,模块化驱动测试、数据驱动、关键词驱动。线性模型线性脚本中每个脚本都相互独立,且不会产生其他依赖与调用,其实就是简单模拟用户某个操作流程的脚本。案例:在帝国软件主页自动登录和退出操作from seleni原创 2017-12-27 16:27:23 · 327 阅读 · 0 评论 -
测试报告生成
自动化测试执行完成之后,我们需要生成测试报告来查看测试结果,使用HTMLTestRunner模块可以直接生成Html格式的报告。下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html下载后的修改:• 94行引入的名称要改,从 import StringIO 改成import io。 • 539行 self.outputBuffer原创 2018-01-03 16:49:17 · 2904 阅读 · 0 评论 -
跳过测试和预期失败
概要• unittest.skip() 直接跳过测试 • unittest.skipIf() 条件为真,跳过测试 • unittest.skipUnless 条件为假,跳过测试 • unittest.expectedFailure 预期设置失败skip规则设定案例import unittestclass Test1(unittest.TestCase):原创 2018-01-03 16:47:09 · 319 阅读 · 0 评论 -
find_element——By 元素定位
• find_element(By.ID,”loginName”) • find_element(By.NAME,”SubjectName”) • find_element(By.CLASS_NAME,”u-btn-levred”) • find_element(By.TAG_NAME,”input”) • find_element(By.LINK_TEXT,”退出”)原创 2018-01-29 13:53:48 · 19437 阅读 · 0 评论 -
selenium之 定位以及切换frame(iframe)
frameset不用切,frame需层层切!fram_loc = (By.XPATH,'//frame[contains(@src,"top")]')def type_loginPass_hint(self): self.driver.switch_to.frame(self.find_element(*self.fram_loc)) return self.find_e转载 2018-02-03 15:29:06 · 509 阅读 · 0 评论 -
Python邮件发送
SMTP(Simple Mail Transfer Protocol)• 即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。SMTP 认证• SMTP 认证,简单地说就是要求必须在提供原创 2018-01-29 13:29:29 · 322 阅读 · 0 评论 -
发送带附件的邮件
案例:发送E:\Python_script\目录下 logo.png图片文件到指定的邮箱import smtplib #发送邮件模块from email.mime.text import MIMEText #定义邮件内容from email.mime.multipart import MIMEMultipart #用于传送附件原创 2018-01-29 13:30:33 · 1068 阅读 · 0 评论 -
整合测试报告发送
案例:获取…\Test_Baidu\test_report目录下最新的测试报告import os #用于访问操作系统功能的模块#报告存放位置report_dir='./test_report'#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表lists=os.listdir(report_dir)#按时间顺序对该目录文件夹下面的文件进行排序li原创 2018-01-29 13:31:45 · 274 阅读 · 0 评论 -
发送测试报告
案例:将E:\Python_script\unittest\Test_Baidu生成的最新测试报告发送到指定邮箱。import unittestfrom BSTestRunner import BSTestRunnerimport timeimport smtplib #发送邮件模块from email.mime.text imp原创 2018-01-29 13:40:31 · 561 阅读 · 0 评论 -
方法的参数个数
#传一个参数def fun_args1(args): print("args is %s" %args)#传两个参数def fun_args2(args1,args2): print("args is %s and %s" %(args1,args2))#任意参数个数,输出为列表def fun_var_args(*args): for value in args:原创 2018-01-29 14:13:49 · 344 阅读 · 0 评论 -
自动化测试登录 python+selenium
Page ObjectPage Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素和功能模块的封装减少冗余代码,同时在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,提高测试用例的可维护性。BasePage.pyfrom time import sleepclass Page(): '''页面基础类''原创 2018-01-30 15:59:24 · 8321 阅读 · 0 评论 -
用例综合框架管理
前面测试用例与执行都是写在一个文件,当用例数量不断增加的时候,用例的执行与管理变得非常麻烦,因此需要对用例根据具体的功能模块来使用单独的模块来管理。就像一所学校要根据不同年级进行分班管理,也是同样道理。 案例:Test_Project 文件目录下包含4个python文件: • l–StartEnd.py—— SetUp与TearDown管理 • l–calculatory.py——加减原创 2018-01-03 16:44:55 · 402 阅读 · 0 评论 -
用例公共部分合并
每个测试类都有SetUp()和tearDown()方法,而且两个方法内容都是一样的,用于打印开始与结束提示语句,是否可以合并在一起呢?class Math: def __init__(self,a,b): self.a=int(a) self.b=int(b) def add(self): return self.a+self.b原创 2018-01-03 16:38:29 · 339 阅读 · 0 评论 -
新增用例管理
前面是针对单个add方法来进行单元测试,如果需要多个方法来进行测试,该如何处理?如新增一个Sub方法来进行单元测试验证。class Math: def __init__(self,a,b): self.a=int(a) self.b=int(b) def add(self): return self.a+self.b def sub原创 2018-01-03 16:29:34 · 855 阅读 · 0 评论 -
webdriver——自动化测试验证码问题
验证码作用不少网站在用户登录、用户提交信息等登录和输入的页面上使用了验证码技术。验证码技术可以有效防止恶意用户对网站的滥用,使得网站可以有效避免用户信息失窃、保证网站稳定安全性。 但是验证码给自动化测试带来一些不便,使脚本无法正常运行覆盖功能模块。如何解决1.去掉验证码 这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自原创 2017-12-27 16:09:08 · 3974 阅读 · 0 评论 -
webdriver——Cookie处理
Cookie是储存在用户本地终端上的数据,实际上是一小段的文本信息。from selenium import webdriverdriver=webdriver.Firefox()driver.get("http://www.51zxw.net/")#获取cookie全部内容cookie=driver.get_cookies()#打印全部cookile信息print(cookie)#打印c原创 2017-12-27 15:41:07 · 1872 阅读 · 0 评论 -
webdriver——上传文件,滚动条控制操作,网页截图操作
上传文件案例:在百度搜索上传本地图片进行搜索。from selenium import webdriverfrom time import sleepdriver=webdriver.Chrome()driver.get("http://www.baidu.com")driver.find_element_by_css_selector(".soutu-btn").click()sleep(3原创 2017-12-23 16:54:44 · 584 阅读 · 1 评论 -
webdrive——frame嵌套页面元素定位,多窗口切换操作,警告弹框处理
frame嵌套页面元素定位案例:在Frame.html文件种定位搜狗搜索页面,进行搜索操作。from selenium import webdriverfrom time import sleepdriver=webdriver.Firefox()#设置网页文件路径,r代表路径转义file_path=r'E:\Python_script\Webdriver\Frame.html'#路径转义另原创 2017-12-23 16:45:28 · 1674 阅读 · 1 评论 -
webdrive——元素等待
元素等待概念1.显示等待是针对某一个元素进行相关等待判定; 2.隐式等待不针对某一个元素进行等待,全局元素等待。相关模块1.WebDriverWait 显示等待针对元素必用 2.NoSuchElementException 用于隐式等待抛出异常 3.By 用于元素定位显示等待案例:检测百度页面搜索按钮是否存在,存在就输入关键词“自学网 Selenium” 然后点击搜索from selenium原创 2017-12-23 15:53:03 · 584 阅读 · 0 评论 -
webdriver——键盘操作
键盘操作案例: 在百度搜索关键词“Python” 然后将关键词复制或剪切到搜狗搜索框进行搜索from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.keys import Keysdriver = webdriver.Chrome()driver.get('http://www.bai原创 2017-12-23 10:46:28 · 420 阅读 · 0 评论 -
webdriver——鼠标操作
思路鼠标操作然后定位相关元素在ActionChains().调用相关鼠标操作方法from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom time import sleepdriver=webdriver.Firefox()driver.get("h原创 2017-12-23 10:32:37 · 248 阅读 · 0 评论 -
Webdriver
Webdriver概述Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与Selenium 1(Selenium-RC)相比,Webdriver 的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像Selenium 1原创 2017-12-22 16:31:49 · 809 阅读 · 0 评论 -
unittest核心要素
1.TestCase一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。2.TestSuite而多个测试用例集合在一起,就是TestS原创 2018-01-03 16:14:10 · 584 阅读 · 0 评论 -
断言
断言内容是自动化脚本的重要内容,正确设置断言以后才能帮助我们判断测试用例执行结果。 断言方法 • assertEqual(a, b) 判断a==b • assertNotEqual(a, b) 判断a!=b • assertTrue(x) bool(x) is True • assertFalse(x) bool(x) is False • assertIs(a, b原创 2018-01-03 16:26:53 · 1007 阅读 · 0 评论 -
发送qq邮件,smtp.login(user, password)出错
502 error: command not implemented 此错误是因为没有配置qq邮箱smtp设置,以下是配置方法:首先你要登陆qq的webmail,在“设置”,“账户”中开启pop3和smtp按照相应的操作发送短信验证验证成功后,复制密码,赋值给password...原创 2018-03-06 16:07:16 · 4612 阅读 · 0 评论