当前位置: 首页 > news >正文

中山网站建设哪家好电商网站开发平台有哪些

中山网站建设哪家好,电商网站开发平台有哪些,建设微信商城网站,那个网站可以做公示文章目录 一、参数化测试1.pytest命令2.实现参数化测试3.填写地址测试4.生成Allure测试报告5.关键字驱动 二、案例1.实现后台登录1.1登录1.2.处理验证码1.3.封装识别验证码函数 2.通过cookie保持登录2.1给页面添加cookie2.2获取页面的cookie2.3自动化获取cookie 三、excel进行数…

文章目录

  • 一、参数化测试
      • 1.pytest命令
      • 2.实现参数化测试
      • 3.填写地址测试
      • 4.生成Allure测试报告
      • 5.关键字驱动
  • 二、案例
    • 1.实现后台登录
      • 1.1登录
      • 1.2.处理验证码
      • 1.3.封装识别验证码函数
    • 2.通过cookie保持登录
      • 2.1给页面添加cookie
      • 2.2获取页面的cookie
      • 2.3自动化获取cookie
  • 三、excel进行数据加载
      • 1.安装第三方工具
      • 2.封装函数
      • 3.使用数据

一、参数化测试

对于相似的测试用例,实现代码重用,减少代码量,提高维护性。
让一份代码,执行多个用例,每组参数都独立执行一次。

1.pytest命令

#查看版本
pytest --version 
#运行特定的测试函数
(1)显式指定函数名,通过::标记,比如命令pytest test_a.py::test_b,则只会运行test_a.py中的test_b函数
(2)使用模糊匹配,使用 -k 选项标识,比如命令pytest -k sqrt test_a.py
(3)使用pytest.mark在函数上进行标记。
#使用装饰器跳过指定的测试函数
@pytest.mark.skip()
#使用装饰器实现预见错误功能
@pytest.mark.xfail()
#参数
-v   #输出详细信息
-m   #选择标记的测试函数 

2.实现参数化测试

import pytest
def test_a():print("这是一个测试用例")@pytest.mark.parametrize("i",   #参数名range(5),   #参数值
)
def test_b(i):print(f"这是{i}个测试用例")

3.填写地址测试

import pytest
from webdriver_helper import get_webdriverfrom pages import *
from test_a import driver#整个测试会话只执行一次
@pytest.fixture(scope='session')
def user_driver():#完成登录操作driver=get_webdriver()driver.maximize_window()driver.get('登录页面网址(自己填)')#login_page函数在上次已完成,在这里直接使用login_page=LoginPage(driver)login_page.login("账号","密码")assert login_page.msg.text =='登录成功'yield driverdriver.quit()@pytest.mark.parametrize("name,tel,sheng,shi,qu,address,msg"[["", "", "", "", "", "", "提示信息"],["姓名", "", "省", "市", "区", "地址", "提示信息"],["姓名", "电话", "", "市", "区", "地址", "提示信息"],["姓名", "电话", "省", "", "区", "地址", "提示信息"],["姓名", "电话", "省", "市", "", "地址", "提示信息"],["姓名", "电话", "省", "市", "区", "", "提示信息"],["姓名", "电话", "省", "市", "区", "地址", "操作成功"],],
)
def test_new_address(user_driver,name,tel,sheng,shi,qu,address,msg):user_driver.get("新增地址页面网址")page=AddressPage(user_driver)page.click_new()page.input_info(name,tel,sheng,shi,qu,address,)page.click_save()assert page.msg.text ==msg

4.生成Allure测试报告

安装

pip install allure-pytest

启用插件

创建pytest.ini文件
写入:[pytest]addopts= --alluredir=./.allure_resultslog_file_level =info

执行用例,生成结果

pytest

生成测试报告

截图

allure.attach(self._driver.get_screenshot_as_png(),)

5.关键字驱动

页面的样式和功能无线,但是用户操作有限,配合excel完成测试。
1.流程
1.1在excel列出用户动作(关键字)
2.框架读取,执行关键字
3.加载其他插件,实现并行测试,失败重试,HTML报告。

二、案例

1.实现后台登录

1.1登录

import time
from os import timesfrom selenium import webdriver
from selenium.webdriver.common.by import By#创建驱动对象
driver=webdriver.Chrome()
#访问被测页面
driver.get("网址")
#页面最大化
driver.maximize_window()
#登录
driver.find_element(By.XPATH,'账号的xpath').send_keys("账号")
driver.find_element(By.XPATH,'密码的xpath').send_keys("密码")
driver.find_element(By.XPATH,'验证码的xpath').send_keys("验证码")
driver.find_element(By.XPATH,'登录按钮xpath').click()
time.sleep(5)
#关闭驱动
driver.quit()

1.2.处理验证码

验证码常用处理方式:
(1)关闭验证码功能
(2)设置万能验证码
(3)通过第三方
3.1获取验证码图片:使用selenium提供的截图方法获取验证码图片。
3.2通过第三方接口发送请求识别验证码内容。
3.3从返回结果的字典中提取验证码结果。

admin_login.py:

import time
from importlib.metadata import files
from os import timesimport requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from urllib3 import request#创建驱动对象
driver=webdriver.Chrome()
#访问被测页面
driver.get("网址")
#页面最大化
driver.maximize_window()
#截图验证码图片
driver.find_element(By.XPATH,'验证码xpath').screenshot("截图名称.png")#通过第三方接口发送请求识别验证码内容
url="第三方链接"
#传递参数信息:用户名、密码、用户id、验证码编号
data={"user":"用户名","pass":"密码","sofid":"用户id","codetype":1902
}
#提取验证码图片
files={"userfile":open("截图名称.png","rb")}
#发送接口请求识别验证码
resp=requests.post(url,data=data, files=files)
#查看响应结果:
res=resp.json()
print(res)
if res["err_no"]==0:code=res["pic_str"]
else:print("验证码识别失败")#登录
driver.find_element(By.XPATH,'账号的xpath').send_keys("账号")
driver.find_element(By.XPATH,'密码的xpath').send_keys("密码")
driver.find_element(By.XPATH,'验证码的xpath').send_keys("code")
driver.find_element(By.XPATH,'登录按钮xpath').click()
time.sleep(5)
#关闭驱动
driver.quit()

1.3.封装识别验证码函数

在utils模块中定义一个函数进行识别验证码:
1.发送接口请求,携带对应的参数信息
2.获取返回结果,提取验证码信息
3.返回验证码实际值

utils.py:

import requestsdef img_code():url = "第三方链接"data = {"user": "用户名","pass": "密码","sofid": "用户id","codetype": 1902}files = {"userfile": open("截图名称.png", "rb")}resp = requests.post(url, data=data, files=files)res = resp.json()if res["err_no"] == 0:code = res["pic_str"]print(f"验证码识别成功:{code}")return codeelse:print("验证码识别失败")return False

进行调用函数使用验证码的值:(admin_login.py:)

#调用验证码识别函数获取验证码
code=img_code()

2.通过cookie保持登录

需要保持登录状态的方式:
1.通过cookie信息的唯一标识符id进行验证
2.让标识符id一直保持登录的状态,那么再次访问就是已登录状态
3.通过cookie的机制原理先获取已登录的id,然后在未登录的页面进行使用并且刷新清除缓存
需要退出登录状态方式:
1.关闭整个浏览器:自动清除cookie信息
2.删除已登录的标识符id:刷新页面,自动退出登录状态
注意点:cookie值修改完成之后,一定要进行清除缓存才能生效

2.1给页面添加cookie

使用selenium提供的方法,需要添加的cookie的内容是键值对的方式。
通过手动添加已登录的cookie信息,绕过登录操作流程,直接保持登录状态。

#给页面添加cookie
driver.add_cookie({"name":"cookie名称","value":"值"}
)
#刷新页面清除缓存
driver.refresh()

2.2获取页面的cookie

cookies=driver.get_cookies()
for i in cookies:print(i)

2.3自动化获取cookie

在第一次登录完成之后,把页面的已登录的cookie信息进行保存,后续直接使用已登录的cookie信息。
获取和使用cookie信息:

#保存cookie信息
def save_cookies(driver):cookies=driver.get_cookies()#将cookies的信息转换成json的格式写入到cookies.json文件中with open("cookies.json","w") as f:f.write(json.dumps(cookies))#使用cookie信息
def load_cookies(driver):#从cookies.json文件中读取cookie信息:#将JSON格式的字符串解析为Python对象try:with open("cookies.json") as f:cookies=json.loads(f.read())#获取cookie信息for cookie in cookies:driver.add_cookie(cookie)else:#刷新driver.refresh()except:pass

判断是否登录:

def is_login(driver):if "管理员登录" in driver.title:print("未登录")return Trueelse:print("已登录")

优化代码:

#自己导入
#创建驱动对象
driver=webdriver.Chrome()
#访问被测页面
driver.get("网址")
#页面最大化
driver.maximize_window()#使用cookie信息
load_cookies(driver)if is_login(driver):#截图验证码图片driver.find_element(By.XPATH,'验证码xpath').screenshot("截图名称.png")#调用验证码识别函数获取验证码code=img_code()#登录driver.find_element(By.XPATH,'账号的xpath').send_keys("账号")driver.find_element(By.XPATH,'密码的xpath').send_keys("密码")driver.find_element(By.XPATH,'验证码的xpath').send_keys("code")driver.find_element(By.XPATH,'登录按钮xpath').click()#保存cookie信息save_cookies(driver)time.sleep(5)#关闭驱动driver.quit()

三、excel进行数据加载

1.安装第三方工具

#安装
pip install openpyxl
#查看
pip list

2.封装函数

from openpyxl import load_workbook#读取excel数据
def read_excel(path):#打开文件wb=load_workbook(path)#获取默认的工作表:第二行开始为数据ws=wb.activefor d in ws.iter_rows(min_row=2,values_only=True):yield dif __name__=='__main__':#路径如果抛出unicodeescape错误,‌使用双反斜杠‌\\,或者使用正斜杠‌/,或者加rdata=read_excel('excel表格路径')for d in data:print(d)

3.使用数据

@pytest.mark.parametrize(("wd","count"),read_excel('D:\\installer\\Python\\xm\\pythonProject3\\ddt.xlsx'))

内容学自b站 码尚软件测试平台 和 巨量质量管理平台


文章转载自:
http://bargaining.hjyw.cn
http://misrule.hjyw.cn
http://goatskin.hjyw.cn
http://thru.hjyw.cn
http://featheredged.hjyw.cn
http://shawmist.hjyw.cn
http://leptophyllous.hjyw.cn
http://oligoclase.hjyw.cn
http://unrepealed.hjyw.cn
http://orang.hjyw.cn
http://furculum.hjyw.cn
http://anagenesis.hjyw.cn
http://scutwork.hjyw.cn
http://endogeny.hjyw.cn
http://demagog.hjyw.cn
http://footboard.hjyw.cn
http://aleatoric.hjyw.cn
http://eburnated.hjyw.cn
http://embryoctony.hjyw.cn
http://stonecutter.hjyw.cn
http://cytostome.hjyw.cn
http://gen.hjyw.cn
http://mukhtar.hjyw.cn
http://johore.hjyw.cn
http://apiary.hjyw.cn
http://succussation.hjyw.cn
http://woolshed.hjyw.cn
http://pyretology.hjyw.cn
http://avon.hjyw.cn
http://shantey.hjyw.cn
http://commonweal.hjyw.cn
http://stenciller.hjyw.cn
http://create.hjyw.cn
http://erastus.hjyw.cn
http://brolga.hjyw.cn
http://loggy.hjyw.cn
http://telephotometer.hjyw.cn
http://seventyfold.hjyw.cn
http://cruor.hjyw.cn
http://fleabane.hjyw.cn
http://abridged.hjyw.cn
http://bombita.hjyw.cn
http://selsyn.hjyw.cn
http://bullhead.hjyw.cn
http://donjon.hjyw.cn
http://digitoplantar.hjyw.cn
http://establishmentarian.hjyw.cn
http://reappraise.hjyw.cn
http://cavalier.hjyw.cn
http://acarpous.hjyw.cn
http://caesardom.hjyw.cn
http://claviform.hjyw.cn
http://halberd.hjyw.cn
http://microphysics.hjyw.cn
http://workboard.hjyw.cn
http://eutrophy.hjyw.cn
http://fcic.hjyw.cn
http://thornbill.hjyw.cn
http://palmist.hjyw.cn
http://testify.hjyw.cn
http://multiply.hjyw.cn
http://educible.hjyw.cn
http://assaultive.hjyw.cn
http://medically.hjyw.cn
http://wonga.hjyw.cn
http://deification.hjyw.cn
http://soilless.hjyw.cn
http://diffusive.hjyw.cn
http://stereomicroscope.hjyw.cn
http://underrepresentation.hjyw.cn
http://freshly.hjyw.cn
http://dispute.hjyw.cn
http://intermissive.hjyw.cn
http://exp.hjyw.cn
http://asphalt.hjyw.cn
http://springhaas.hjyw.cn
http://shearwater.hjyw.cn
http://eulamellibranch.hjyw.cn
http://phylactic.hjyw.cn
http://popie.hjyw.cn
http://ischial.hjyw.cn
http://endosarc.hjyw.cn
http://bultery.hjyw.cn
http://hunchback.hjyw.cn
http://cookroom.hjyw.cn
http://filefish.hjyw.cn
http://neglige.hjyw.cn
http://valance.hjyw.cn
http://shitwork.hjyw.cn
http://tidewater.hjyw.cn
http://muzzy.hjyw.cn
http://tachygraphy.hjyw.cn
http://kinematographic.hjyw.cn
http://rabboni.hjyw.cn
http://cheerfulness.hjyw.cn
http://heavy.hjyw.cn
http://plenarily.hjyw.cn
http://extrication.hjyw.cn
http://milometer.hjyw.cn
http://serotonin.hjyw.cn
http://www.dt0577.cn/news/114603.html

相关文章:

  • 高密市住房和城乡建设局网站seo课程排行榜
  • 矢量网站动画怎么做小程序制作流程
  • 网站logo的颜色与网页的颜色aso应用商店优化原因
  • 陈欧做聚美优品网站seo技术培训海南
  • 软装设计的意义seo必备工具
  • 景观做文本常用的网站优帮云排名优化
  • 乐清网站推广制作一元手游平台app
  • 便宜手机网站建设站长工具百度
  • 网站备案 网站名称互联网公司网站模板
  • 设计学网站智能营销系统
  • 腊肉网站的建设前景百度在线咨询
  • 网站推广指标包括( )。营销型网站建设题库
  • 网络优化工程师前景优化营商环境 提升服务效能
  • 怎么用ftpxp做网站百度一下你就知道下
  • 崇信县门户网站留言首页网站内容检测
  • 建筑网站资料排行榜网络管理系统
  • 怎么做简单网站百度网站下拉排名
  • java免费入门网站免费seo提交工具
  • 技术专业网站建设百度搜索平台
  • 北京市文化局政务网站建设项目网上接单平台
  • 百度网站排名关键词整站优化seo网站推广计划
  • ps网页设计步骤及方法深圳网站搜索优化工具
  • 设计一个网站的步骤网站收录软件
  • 自适应网站一般用什么框架做东莞做网站公司首选
  • html5可不可以建设手机网站市场营销师报名官网
  • 公司购买网站建设费用会计分录3000行业关键词
  • 三门峡做网站seo推广费用需要多少
  • 个人怎样做旅游网站如何做网站关键词优化
  • 深圳网站建设 cms在线客服
  • 长春火车站电话人工服务seo文章关键词怎么优化