Python分类测试代码实例汇总

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()

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

(0)

相关推荐

  • Python接口测试文件上传实例解析

    接口测试中,上传文件的测试场景非常常见.例如:上传头像(图片).上传文件.上传视频等.下面以一个上传图片的例子为大家讲解如何通过 python 测试上传文件接口. 首先通过抓包分析上传文件接口的请求参数: 下面是上传文件接口脚本.把目标文件以open打开,然后存储到变量file.并且使用files参数指明请求的参数名称.上传文件的类型.以及上传文件的路径. 这里注意:content-type参数,如果我们通过form-data的方式上传文件,我们发送post请求的时候,headers这个参数中一

  • Python使用Pyqt5实现简易浏览器(最新版本测试过)

    准备环境 首先我们需要的是我们的开发环境,我使用的是python 3.8.2和pyqt 5.14.2,因为有强迫症,所以喜欢使用最新版的 安装QtWebEngineWidgets 这是新版使用的web浏览器引擎,更加的贴近谷歌浏览器,好像是需要单独安装,我就是这样的 pip3 install QtWebEngineWidgets 多tab页面 做这个的时候遇到好多坑,比如在多个tab里面打开页面,要使用这个QTabWidget,这个不用我们再去下载了,已经集成了 页面链接点击无反应 这个搞了我半

  • python+requests接口压力测试500次,查看响应时间的实例

    接口压力测试500次,查看响应时间 import json import requests import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) restime = [] OK=[] class Restime(): def API(self,

  • python利用Excel读取和存储测试数据完成接口自动化教程

    http_request2.py用于发起http请求 #读取多条测试用例 #1.导入requests模块 import requests #从 class_12_19.do_excel1导入read_data函数 from do_excel2 import read_data from do_excel2 import write_data from do_excel2 import count_case #定义http请求函数 COOKIE=None def http_request2(met

  • jenkins+python自动化测试持续集成教程

    一.首先我们安装Jenkins,我这里采用的是.msi应用程序,根据提示进行安装(傻瓜式),最后会打开默认的网页地址:http://localhost:8080 如果端口有冲突,可以去Jenkins的安装目录下的这个文件去改端口: 二.进入Jenkins的界面,会提示输入解锁密码,根据界面提示找对对应文件输入密钥即可. 三.选择推荐安装插件即可,两者都可以,看自己需要选择,选择后会进入插件安装页面,会需要一些时间,会因为网络等原因导致一些插件安装失败(国外服务器),不过后面可以再去装. 四.创建

  • Python接口测试数据库封装实现原理

    引言 做接口测试的时候,避免不了操作数据库.因为数据校验需要,测试数据初始化需要.一些参数化场景需要等. 数据库操作框架设计 这里主要操作mysql数据库,整体思路: 封装实现 具体代码实现: import pymysql import json class OperateMysql(object): def __init__(self): # 数据库初始化连接 self.connect_interface_testing = pymysql.connect( "localhost",

  • Python unittest单元测试框架实现参数化

    当我们在使用TestNG时,发现它有一个非常好用的参数化功能.当你的测试用例有固定的参数和断言结果时,它可以相似用例的节省用例的个数. 例子如下: import static org.testng.Assert.assertEquals; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Created by fnngj on 2017/3/19. */ public cla

  • python接口调用已训练好的caffe模型测试分类方法

    训练好了model后,可以通过python调用caffe的模型,然后进行模型测试的输出. 本次测试主要依靠的模型是在caffe模型里面自带训练好的结构参数:~/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel,以及结构参数 :~/caffe/models/bvlc_reference_caffenet/deploy.prototxt相结合,用python接口进行调用. 训练的源代码以及相应的注释如下所示

  • Python分类测试代码实例汇总

    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

  • Python tkinter模版代码实例

    这篇文章主要介绍了Python tkinter模版代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 import tkinter import time import threading from tkinter import ttk event = threading.Event() once=0 def start(): global once if once==1: # event.set() # print('继续')

  • python多进程并行代码实例

    这篇文章主要介绍了python多进程并行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码: from multiprocessing import Process import sys, os import time def timetask(string): while True: print(string) def works(func, arg, worknum): proc_record = [] for i in rang

  • python多进程间通信代码实例

    这篇文章主要介绍了python多进程间通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 这里使用pipe代码如下: import time from multiprocessing import Process import multiprocessing class D: @staticmethod def test(pipe): while True: for i in range(10): pipe.send(i) time.s

  • java实现python session功能代码实例

    这篇文章主要介绍了java实现python session功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 怎么在java中实现类似于python的requests模块的session功能呢.java也是可以实现的,用java的okhttp包可以实现. 在pom.xml中加入相关依赖 <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --> <

  • Python解析json代码实例解析

    这篇文章主要介绍了Python解析json代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 什么是json格式: JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集. import json data = { "statusCode": 200, "data":

  • Python有参函数使用代码实例

    这篇文章主要介绍了Python有参函数使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.给定验证码长度n,生成随机验证码,验证码由数字.字母组成(参考chr()内置方法) 程序代码如下: import random def create_check_code(n): check_code = '' # 创建一个变量用以接收随机出来的验证码字符 for i in range(n): asc_num = random.randint(

  • Python随机数函数代码实例解析

    这篇文章主要介绍了Python随机数函数代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ''' choice(seq) 从序列的元素中随机选出一个元素 randrange ([start,] stop [,step]) 从指定范围内,在指定步长递增的集合中 获取一个随机数,步长默认为 1 .注:不包含 stop 值 random() 随机生成下一个实数,它在[0,1)范围内. shuffle(lst) 将序列的所有元素随机排序,返回

  • AJAX简单测试代码实例

    本文实例讲述了AJAX简单测试代码.分享给大家供大家参考.具体如下: 客户端:代码如下:(AJAX_test.html ) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/x

  • Python实现list反转实例汇总

    本文实例总结了Python实现list反转的方法.分享给大家供大家参考.具体实现方法如下: 下面有几个不同实现的函数 复制代码 代码如下: import math   def resv(li):     new = []     if li:         cnt = len(li)         for i in range(cnt):             new.append(li[cnt-i-1])     return new   def resv2(li):     li.re

随机推荐