Python分类测试代码实例汇总


Posted in Python onJuly 23, 2020

1.自动化测试里面的测试用例设计的一些方法

解耦、可以独立运行、需要灵活切换

设计思路: 脚本功能分析(分步骤)和模块化分层(拆分为多模块)

project

login_order.py #登录下单测试用例
category.py #菜单分类测试用例

all_test.py #主入口

login_order.py

# -*- coding: UTF-8 -*-
import unittest
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains


class LoginOrderTestCase(unittest.TestCase):
  def setUp(self):
    print("测试开始")
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(20)
    self.base_url = "https://xdclass.net"
    self.driver.get(self.base_url)

  def tearDown(self):
    print("单个测试用例结束")
    pass
    #单个测试用例结束
  
  def test_login_order(self):
    u"登录测试用例"
    driver = self.driver
    #登录框
    login_ele = driver.find_element_by_css_selector("#login")
    ActionChains(driver).click(login_ele).perform()

    sleep(2)
    #查找输入框,输入账号,输入框要提前清理里面的数据
    driver.find_element_by_id("phone").clear()
    driver.find_element_by_id("phone").send_keys("13113777338")
    #查找密码输入框,输入密码
    driver.find_element_by_id("pwd").clear()
    driver.find_element_by_id("pwd").send_keys("123456789")

    #拿到登录按钮
    login_btn_ele = driver.find_element_by_css_selector("button.login")
    #触发点击事件,登录
    login_btn_ele.click()
    #判断登陆是否成功,逻辑-》鼠标移到上面,判断弹窗字符
    #获取鼠标上移的元素
    user_info_ele = driver.find_element_by_css_selector(".user_head_portrait")
    sleep(1)
    #hover触发
    ActionChains(driver).move_to_element(user_info_ele).perform()
    sleep(1)
    #获取用户名称元素
    user_name_ele = driver.find_element_by_css_selector(".img_name > span:nth-child(2)")
    print("===测试结果==")
    print(user_name_ele.text)

    name = user_name_ele.text
    #self.assertEqual(name, u"二当家小D",msg="登录失败")

    video_ele = driver.find_element_by_css_selector("div.hotcourses:nth-child(3) > div:nth-child(2) > div:nth-child(1) > ul:nth-child(1) > li:nth-child(1) > a:nth-child(1) > div:nth-child(1) > img:nth-child(1)")
    video_ele.click()
    sleep(2)

    buy_btn_ele = driver.find_element_by_css_selector(".learn_btn > a:nth-child(1)")

    buy_btn_ele.click()
    print("进入下单页面")
    
if __name__ == '__main__':
    unittest.main()

category.py

# -*- coding: UTF-8 -*-
import unittest
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains

class CategoryTestCase(unittest.TestCase):
  def setUp(self):
    print("测试开始")
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(20)
    self.base_url = "https://xdclass.net"
    self.driver.get(self.base_url)


  def tearDown(self):
    print("测试结束")
    #单个测试用例结束
    self.driver.quit()

  def test_menu(self):
    u"弹出菜单测试用例"
    driver = self.driver
    #跳转网页
    sleep(1)

    #定位到鼠标移动到上面的元素
    menu_ele = driver.find_element_by_css_selector("#banner_left_ul > a:nth-child(1) > li:nth-child(1) > span:nth-child(1)")

    #对定位到的元素执行鼠标移动到上面的操作
    ActionChains(driver).move_to_element(menu_ele).perform()
    sleep(2)
    #选中子菜单
    sub_meun_ele = driver.find_element_by_css_selector("#des > li:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)")

    sub_meun_ele.click()
    sleep(2)


if __name__ == '__main__':
  unittest.main()

all_test.py

# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import login_order ,category
import time

#创建测试集合  
def create_suite():
  print("测试开始")
  suite = unittest.TestSuite()
  suite.addTest(unittest.makeSuite(login_order.LoginOrderTestCase))
  suite.addTest(unittest.makeSuite(category.CategoryTestCase))
  return suite
   

if __name__ == '__main__':
  suite = create_suite()

  #文件名中加了当前时间,为了每次生成不同的测试报告
  file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())

  #创建测试报告,此时这个文件还是空文件 wb 以二进制格式打开一个文件,只用于写入,如果文件存在则覆盖,不存在则创建
  fp = open("./"+file_prefix+"_result.html","wb")
  
  # stream定义一个测试报告写入的文件,title就是标题,description就是描述
  runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"小D课堂 测试报告",description=u"测试用例执行情况",verbosity=2)
  runner.run(suite)
  fp.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
零基础写python爬虫之抓取百度贴吧代码分享
Nov 06 Python
Python实现CET查分的方法
Mar 10 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
Django单元测试工具test client使用详解
Aug 02 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
python调试工具Birdseye的使用教程
May 25 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 Python
基于Python3读写INI配置文件过程解析
Jul 23 #Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 #Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 #Python
Python 绘制可视化折线图
Jul 22 #Python
python写文件时覆盖原来的实例方法
Jul 22 #Python
python中return不返回值的问题解析
Jul 22 #Python
Java byte数组操纵方式代码实例解析
Jul 22 #Python
You might like
php银联网页支付实现方法
2015/03/04 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
js星星评分效果
2014/07/24 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
简单了解python中对象的取反运算符
2019/07/01 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
python爬虫请求头的使用
2020/12/01 Python
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
大学生饮食连锁店创业计划书
2014/01/17 职场文书
汽车广告策划方案
2014/05/31 职场文书
银行给客户的感谢信
2015/01/23 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书