编写Web测试用例

1.介绍了unittest单元测试框架,其主要是来运行Web自动化测试脚本。简单的规划一下测试目录:
web_demo1/
------test_case/
------------test_baidu.py
------------test_google.py
------report/
------------login.txt
------runtest.py
目录结构如下图所示:

创建web测试用例。

#test_baidu.py


#coding:utf-8
from selenium import webdriver
import unittest
import time class MyTest(unittest.TestCase): def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="http://www.baidu.com" def test_baidu(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("unittest")
driver.find_element_by_id("su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,u"unittest_百度搜索") def tearDown(self):
self.driver.quit() if __name__=="__main__":
unittest.main()

  

#test_google.py


#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
import time class MyTest(unittest.TestCase): def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="https://www.google.com" def test_google(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_name("q").clear()
driver.find_element_by_name("q").send_keys("webdriver")
driver.find_element_by_name("q").send_keys(Keys.ENTER)
time.sleep(2)
title=driver.title
self.assertEqual(title,u"webdriver - Google 搜索") def tearDown(self):
self.driver.quit() if __name__=="__main__":
unittest.main()  

在test_case/目录下分别创建百度搜索test_baidu和有道搜索test_google.py测试文件,并在测试文件中编写web自动化测试用例。

runtest.py文件如下图所示,这里需注意:(导入模块)由于test_baidu.py和test_google.py与runtest.py并不在同一个目录下,所以这里,只需要在test_case目录下加入一个__init__.py文件即可。

#runtest.py

#coding:utf-8
import unittest
#加载测试集
from test_case import test_baidu
from test_case import test_google #构造测试集 suite=unittest.TestSuite()
suite.addTest(test_baidu.MyTest("test_baidu"))
suite.addTest(test_google.MyTest("test_google")) if __name__=="__main__":
runer=unittest.TextTestRunner()
runer.run(suite)

  

2.保存测试结果

怎样把测试结果生成一个有log.txt的文件呢?这里需要借助dos命令来实现。
首先打开Windows命令提示符,进入到../web_demo1/目录下执行命令,如下图所示。

打开…./report/log.txt文件,内容如下图所示

小结:学习unittest框架是为了用它来编写web自动化测试用例,利用其组织测试用例,断言预期结果以及批量执行测试用例等功能,可以很好地进行web自动化测试的开发。

Selenium 2自动化测试实战34(编写Web测试用例)的更多相关文章

  1. Selenium 2自动化测试实战

    Selenium 2自动化测试实战 百度网盘 链接:https://pan.baidu.com/s/1aiP3d8Y1QlcHD3fAlEj4sg 提取码:jp8e 复制这段内容后打开百度网盘手机Ap ...

  2. Selenium 2自动化测试实战3(函数、类和方法)

    一.函数.类和方法1.函数在python中通过def关键字来定义函数 创建一个add()函数,此函数接收两个参数a,b,通过print()打印a+b的结果.调用add()函数,并且上传两个参数3,5给 ...

  3. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  4. web自动化测试实战之批量执行测试用例

    01实战之分离测试固件 在UI 自动化测试中,不管编写哪个模块的测试用例,都需要首先在测试类中编写测试固件初始化WebDriver类及打开浏览器,执行登录,才能进行下一步业务逻辑的操作,测试用例执行完 ...

  5. Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记

    背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...

  6. unittest编写Web测试用例

    案例:百度搜索关键词:“unittest” test_baidu.py: from selenium import webdriver from time import sleep import un ...

  7. Selenium 2自动化测试实战26(unittest单元测试框架)

    一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self ...

  8. Selenium 2自动化测试实战29(组织单元测试用例和discover更多测试用例)

    一.组织单元测试用例 看看unittest单元测试框架是如何扩展和组织新增的测试用例以之前的calculator.py文件为例,为其扩展sub()方法,用来计算两个数相减的结果. #coding:ut ...

  9. Selenium 2自动化测试实战18(上传文件)

    一.上传文件 上传文件是比较常见的web功能之一,但WebDriver没有提供专门用于上传的方法. 一般web页面的上传功能的操作需要单击“上传”按钮后打开本地的Window窗口,从窗口选择本地文件进 ...

随机推荐

  1. printf固定一行打印倒计时的实现

    @2019-07-15 [小记] #include<stdlib.h> #include <stdio.h> #include <time.h> #include ...

  2. JS中数组初始化以及赋值

    .指定长度,然后初始化 ); ;index < ;index++){ vArray[index] = index; } 2.不指定长度,然后初始化 var vArray = new Array( ...

  3. Python3+Appium学习笔记03-启动app

    这个是appium相关的官方api地址:http://appium.io/docs/en/about-appium/api/ 如同selenium进行自动化测试时,需要先创建一个浏览器实例一样.在使用 ...

  4. 如何用win10自带linux系统学习c语言---解决gdb使用问题

    1.windos store---ubuntu18 2.改安装源 3.装gcc   apt-install 即可 4.装gdb       apt-instll 即可 5.写helloworld 记做 ...

  5. Linux文件系统之删除文件、文件夹(rm,rmdir)

    rm命令,rmdir命令 rm命令Remove,功能:1)删除目录,2)删除文件.  (可以递归的删除指定目录的所有文件及子目录) 注意:rm是一个危险的命令,使用的时候要特别当心,尤其对于初学者来说 ...

  6. UVA10900 So you want to be a 2n-aire?

    So you want to be a 2n-aire? PDF 在一个电视娱乐节目中,你一开始有1元钱.主持人会问你n个问题,每次你听到问题后有两个选择:一是放弃回答该问题,退出游戏,拿走奖金:二是 ...

  7. CF732F Tourist Reform[边双缩点]

    题意:给无向图每一条边定向,使得每个点可达点数$R_i$最小值尽可能大,求方案. 条件反射想到二分答案,然后看怎么检验,发现要让所有点$R_i$大于等于某一个值,首先我们关注某些特殊的子图:如果有环的 ...

  8. react-router5.x 的配置及其页面跳转方法和js跳转方法

    https://blog.csdn.net/sinat_37255207/article/details/90745207 上次用react-router 的时候  还是3.x 很久不用 已经到rea ...

  9. 在maven项目中如何引入另外一个项目(转)

    原文链接:https://blog.csdn.net/jianfpeng241241/article/details/52654352 1  在Myeclipse中准备两个maven demo. , ...

  10. django.core.exceptions.ImproperlyConfigured: The included URLconf 's9luffycity.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused

    出现问题: $ python manage.py runserver 启动项目报错时候 raise ImproperlyConfigured(msg.format(name=self.urlconf_ ...