自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 Stimulsoft Reports预览正常,导出PDF时内容被覆盖或者显示不完整怎么设置?

导出PDF时,内容被覆盖:这是因为导出时的算法与预览时算法不一样,需要计算相关属性,某些属性未配置引起的,此时可以通过配置数据区及文本框的相关属性达到效果:数据区的属性配置(勾选[自动伸展]、[自动收缩]):数据区内所有文本框的属性配置(勾选[自动伸展]、[自动收缩]、[适应高度],一定要注意是所有文本框):配置后再进行导出即可达到效果:...

2022-05-09 15:24:06 1712 3

原创 FusionCharts基本属性

属性参考官方网址:Chart Attributes | FusionCharts样例参考官方网址:https://www.fusioncharts.com/charts/1.Functional Attributes(功能属性)animation='0/1' (设置图形的显示是否是动画显示)animationDuration='1'(仅在启用动画时有效,单位秒,动画持续时间,默认1秒)palette='1-5' (5种默认的调色板风格任你选)paletteColors='String

2022-05-09 14:35:24 387

原创 JMeter生成测试报告-命令行版

以windows环境为例:执行路径:执行命令前要检查当前目录是否是%JMeter_Home%\bin 目录;如果 JMeter 脚本不在当前目录,需要指定完整的路径;如果要把执行的结果保存在其他地方也要指定完整的路径。命令中不指定测试计划与测试结果的路径时,默认都是在该目录下。命令:jmeter -n -t 测试计划名称 -l 测试结果文件名称如果JMeter 脚本不在当前目录即bin目录中,需要执行完整的路径命令:jmeter -n -t 测试计划名称 -l 测试结果文件名称 -e -o

2022-03-10 15:37:08 2704

原创 System.UnauthorizedAccessException: 对路径“.......”的访问被拒绝的解决办法

在使用.NET项目时上传文件保存到共享文件夹时遇到这个问题,详细报错信息为:[ERROR] 2022-xx-xx 14:54:07 System.UnauthorizedAccessException: 对路径“\\172.19.6.98\file\4211_2-下拉选择_20220303154939.xlsx”的访问被拒绝。若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所

2022-03-09 15:24:52 20956 4

原创 python浅拷贝和深拷贝

按照自己的理解写出来的直接赋值:对象的引用(变量别名);浅拷贝(copy):拷贝父对象,不会拷贝子对象(对象的内部的子对象,比如{1:[1,2,3]},[2,3,4]就是子对象);深拷贝(deepcopy):完全拷贝父对象和子对象。简单举例说明:import copya = {1: [1, 2, 3]}b = a.copy()print(a, b){1: [1, 2, 3]} {1: [1, 2, 3]}a[1].append(4)print(a, b){1: [1,

2022-02-17 18:08:13 513

原创 Try to run this command from the system terminal. Make sure that you use the correct version of ‘pip

本地安装crypto插件的时候报如下错误:Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'D:\Python3.7\python.exe'.根据报错最后两行得知是pip版本低导致,于是去官网下载pip插件:https://pypi.org/

2022-01-29 09:33:36 7706 2

原创 appium项目实战+框架(2):复杂用例

PO模式组件化封装(分层),以功能相关进行分类通过文本定位元素两种:1.locator 写死locator_shijuan = ('xpath', '//*[@text="Linux--初级--第1套"]')2.函数设置参数def choose_tiku(self, name): """通过题库的名称选择题库""" locator = ('xpath', f'//*[@text="{name}"]')...

2022-01-05 19:12:54 304

原创 appium项目实战+框架(1):登录功能PO模式

框架(参考web框架)以实例进行说明:编写app自动化测试用例的流程:第一步,手工测试(设计用例)优化方向:更好用;更易懂;维护更方便;更通用;扩展性强。没有使用PO模式前:# 登录的测试用例from common.login_page import LoginPagefrom common.native_page import NativePagedef test_login_failed(app): """登录用例 测试用例步骤: 1.启动app

2022-01-05 09:52:24 659

原创 appium操作

1.获取driver属性current_package,包名,aapt,元素定位给 current_activity,后面切换有用,==>url context,上下文,web窗口切换,h5测试,获取上下文,driver.switch_to.context contexts,所有的上下文,==>window_handlers current_context,获取现在的上下文,获取当前窗口current_window_handler page_source,源代码,html,driv

2021-12-27 19:52:43 1692

原创 appium-元素定位

在web测试中,可以使用F12辅助元素定位,app中没有这样的工具,需要安装第三方的工具,目前主流的工具有:androiduiautomatorviewer weditor appiuminspect1.appiuminspect是appium服务内置的工具,点击搜索按钮即可打开appiuminspectinspect配置界面,Desired Capabilities参数与caps参数一致,配置好后另存为即可,方便下次直接使用。然后点击Start Session开始会话。...

2021-12-26 20:34:24 1706

原创 appium快速使用

Appium是一个开源的测试自动化框架,可以与原生的、混合的和移动的web应用程序一起使用。它使用WebDriver协议驱动IOS、Andriod和Windows应用程序。国内比较出名的框架appium airtest uiautomator2(python)1、启动一个app自动化程序的步骤打开模拟器(本地使用雷电模拟器),或者连上真机 cmd命令行输入adb devices,确保能找到模拟器 ...

2021-12-22 18:53:17 2217 1

原创 appium环境安装

1、环境依赖appium服务(appium desktop,类似于chromedriver.exe) Appium-Python-Client(pip install Appium-Python-Client) 手机,模拟器或者真机,雷电模拟器,genymotion,夜神,逍遥,mumu开发者模式USB调试模式连接电脑时,手机窗口允许授权java jdk 1.8+64位 android环境 adt-bundle apk包2、appium运行原理python----h.

2021-12-20 19:59:03 1750

原创 web阶段内容总结

1.selenium原理2.扩展:关键字驱动关键字驱动和数据驱动的区别在于:不仅隔离了数据,而且把需要执行的动过也以字符串的形式,存放到表格当中。和数据驱动相同的是,它还是只有一个通用的测试执行函数。当运行测试脚本时,每条数据和动作会一起作为参数传入执行函数中。我们来举一个实际的例子,首先创建一个excel/yaml文件存储一条用例的所有测试步骤,需要调用的操作和数据。yaml文件中代码:# - 表示list- # 访问url action: goto param

2021-12-19 21:54:49 170

原创 web项目实战+框架(5)-allure测试报告和Jenkins

1.alluer安装第一个是安装包,allure-command-line,运行报告服务,下载地址:https://github.com/allure-framework/allure2/releases/tag/2.17.2解压后,可以通过cmd运行allure.bat,也可以通过配置环境变量运行第二个是allure的python绑定包,pipinstallallure-pytestpytest使用语法,--alluredir=outputpytest.main(['--al..

2021-12-19 16:04:59 962

原创 web项目实战+框架(4)-复杂用例的设计

locator分层 隔离元素定位表达式和浏览器操作,当元素定位表达式发生变化时,只需要修改元素定位表达式。方式1:直接放在po页面对象,作为类属性。分层前代码:from selenium.webdriver.common.by import Byfrom pages.basepage import Pagefrom setting import config class LoginPage(Page): url = config.host + '/User/logi..

2021-12-17 21:19:24 897

原创 web项目实战+框架(3)-深入分层设计

本节内容:base url 参数提取 登录状态 数据驱动 元素定位层位 basepagePO模式是什么?1、字面意思,页面对象模型;2、本质上就是封装PO模式的作用:1、可读性,2、复用性,3、简化;4、页面操作个测试用例隔离,5、扩展和可维护性。UI/WEB自动化测试数据驱动:数据驱动成本高,不同步骤需要编写不同的用例函数。...

2021-12-16 09:13:51 492

原创 web项目实战+框架(2)-自动化用例设计/PO模式

1.概述po模式是由martin flower提出的ui测试模式。selenium.dev也对这个模式进行了详细的阐述。这种思想把页面的元素操作封装成类当中的方法,在测试过程中不再需要关注页面的结构,而只需要关心执行的操作。在没有使用po模式之前,测试函数基本上都是像这样的代码:这样的代码实现起来非常快速方便,当时维护起来却麻烦一些。首先,当前端页面改变后,需要到处检查是否哪些代码需要改动;其次,阅读代码时只知道执行了什么操作,却不理解具体做了什么业务。实行po模式以后,代码会分成.

2021-12-07 19:07:14 908

原创 web项目实战+框架(1)-自动化应用场景、需求分析

主要内容:ui自动化测试在整个测试过程中占据的地位 ui测试的特征(用户界面:测试点,测试策略,端对端的过程:系统测试) ui的自动化测试(测试计划,整体执行相关的策略) ui自动化测试的流程(需求分析,测试计划,编写用例,测试执行,报告产出) --v0:跑通流程,主要包括:浏览器的正常打开,网页的正常打开,功能(点击,用户输入)测试用例(注册,登录),断言(页面的表现是否符合预期,元素的状态(text,属性)) --v1:po模式优化...

2021-12-06 22:10:22 505

原创 web页面组成之dom对象/页面操作(js操作滚动条/日期/文件上传)

主要内容:JavaScript(html+css+JavaScript) DOM 在浏览器中直接运行代码 打开新窗口 窗口的滚动 修改页面的元素状态(属性,text,html)-时间选择控件 selenium execute_script 文件上传1.JavaScript前端工程师学的编程语言(html,css,JavaScript)为什么所有的前端都需要去学JavaScript?JavaScript负责页面的动作,跳转等动态化的效果 所有的浏览器都内置安装了JavaSc.

2021-12-03 09:13:48 848

原创 web页面:浏览器操作

鼠标操作:双击、右击、悬停、拖拽、按键管理用户输入操作:单选,多选,select,快捷键文件上传:JS去修改一.鼠标操作1. 悬停# 鼠标悬停(哪个元素)el = browser.find_element(By.XPATH, "//a[contains(text(),'HTML / CSS')]")# 悬停,ActionChains下面的动作方法必须要再机上perform()才能生效ActionChains(browser).move_to_element(el).perform

2021-11-30 18:47:44 1029

原创 web页面:窗口切换

1.标签页切换在某个窗口上点击某个链接在新标签页显示新窗口时,如果想要点击新标签页的元素时,需要进行窗口切换。driver.switch_to.window('窗口名称')from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.suppor

2021-11-28 20:21:14 2481

原创 web页面:xpath/css选择器元素定位和等待

1.xpath元素定位支持所有的元素属性 支持text文本 可以通过标签名 可以通过元素之间的关系 要素和要素之间可以进行任意形式的组合通过浏览器找到元素的xpath路径:首先F12,选中元素的html定义代码,鼠标右键->copycopy Xpath,相对路径,//*[@id="kw"]copy full Xpath ,绝对路径,/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input优先选用相对路径,因为

2021-11-26 20:04:27 1715

原创 web页面:元素定位

web自动化测试核心内容:元素定位 网页操作 等待 pytest+selenium组合使用 项目实战本节内容主要讲元素定位。1.为什么要进行元素定位?操作元素2.selenium如何进行定位元素?自动化去查找元素的方法:网页的页面结构(F12查找,selenium在用的查找方法) 坐标,受页面大小影响,selenium不支持 图像识别,消耗CPU资源但酷炫,实用性不高,selenium不支持网页的页面结构:由各种各样的网页标签<>构成,形成很复杂.

2021-11-21 22:45:00 1022

原创 web自动化测试:seleniumwebdriver环境搭建

seleniumselenium是浏览器自动化工具(使用代码控制浏览器,执行浏览器操作)+测试工具(unittest/pytest)1.使用selenium的前提安装浏览器(以chrome为例) 使用命令安装,pipinstallselenium webdriver驱动的安装2.selenium快速使用...

2021-11-21 22:04:01 1656

原创 Docker入门

一.为什么要使用Docker?传统的安装环境的方式:1、没有固定的脚本可以实行2、系统发行版不一样,命令不一样3、系统版本不一致,进行不同的配置4、python版本保持一致5、没有办法移植docker能解决传统安装的问题,它和虚拟机差不多-不管你想装什么软件,什么环境,只需要下载这个软件的镜像,通过docker运行就可以。-保证版本的一致性,避免环境的不兼容。docker缺点就是必须先安装它,依赖于linux系统。docker 镜像和容器镜像:相当于安装包

2021-11-19 20:30:30 2684

原创 pytest框架基础

1.生成时间戳的html报告# pytest 运行项目import pytestfrom datetime import datetime# 获取时间戳,now()获取现在的时间,strftime()转化成字符串report_time = datetime.now().strftime("%Y%m%d%H%M%S")# 字符串拼接filename = f'pyreport-{report_time}.html'# 收集用例并运行用例# 命令行参数放入列表中pytest.main([

2021-11-16 19:19:27 1545

原创 pytest框架入门

pytest属于第三方库,使用前,请先安装:pip install pytest对于单元测试框架的核心功能:收集用例,进入目录,运行 pytest 指令cd 目录路径:进入目录pytest:执行测试用例制定用例函数的定义规则,以test开头支持普通函数,测试类"""pytest用例编写规则很灵活:1、直接定义函数,不需要测试类2、编写测试类,不继承unittest.TestCase3、编写测试类,继承unittest.TestCase,可以直接迁移(兼容)测试函数还是

2021-11-16 17:40:25 867

原创 项目实战-mock测试

1.什么是mock?mock测试(mocks)是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。2.为什么要使用mock?之所以使用mock测试,是因为真实场景很难实现或者短期实现起来很困难。主要场景有:真实对象可能还不存在(接口还没有完成开发); 真实对象很难搭建起来(第三方支付联调); 真实对象的行为很难触发(例如,网络错误); 真实对象速度很慢(例如,一个完整的数据库,在测试之前可能需要

2021-11-16 15:48:54 1134

原创 项目实战-jenkins安装/插件/配置/job/定时任务

讲持续化集成之前,先来看下自动化测试的运行方式。一.自动化测试的运行方式1.打开pycharm有时候没有pycharm这个工具,比如1,代码在远程仓库当中(本地没有) 2,不一定是在个人电脑上运行自动化测试用例,有专门的服务器或者电脑,比如linux系统,不一定有pycharm(pycharm只是我们在本地编写代码的一个工具) 3,这时候要用命令行去运行py文件:python 路径\run.py 4,在运行之前,通过pip install -r 路径\requirements.txt

2021-11-09 18:39:19 775

原创 项目实战-业务流的测试

业务流本质上还是接口依赖,接口关联:1.if实现动态数据替换,详见项目实战-充值接口优化(接口关联)_Ly_LittleStar的博客-CSDN博客 正则表达式(第一个技术) 数据提取(extract) 以投资接口为例 进一步优化(封装)...

2021-11-09 10:29:23 550

原创 项目实战-正则表达式

几乎所有的编程语言都支持正则表达式。字符串的模糊匹配技术。

2021-11-07 17:40:55 911

原创 项目实战-审核接口

主要内容:实现接口关联(审核接口)测试用例函数需要编写的代码:1.获取实际结果,requests.request() 2.预期结果 3.断言除了这三个操作以外,都是可以作为前置或者后置。(登录获取member_id,token)审核接口分析:1.新增项目前需登录:接口名称:/member/login ,请求方法:POST,管理员token接口名称:/member/login ,请求方法:POST,借款人token2.审核前需要新增项目:接口名称:/loan/add .

2021-11-06 17:57:51 700

原创 项目实战-git命令使用、pycharm与git集成

主要内容:代码管理,环境管理 git/svn(版本控制工具)+github/gitlab/gitee(代码托管平台) 实现接口关联(审核接口)测试用例函数需要编写的代码:1.获取实际结果,requests.request() 2.预期结果 3.断言除了这三个操作以外,都是可以作为前置或者后置。(登录获取member_id,token)1.git/svngit是一个开源的分布式版本控制系统,用一有效、高速的处理从很小到非常大的项目版本管理。支持克隆/下载。支持离线保存在本地,比较.

2021-11-06 15:56:58 533

原创 项目实战-充值接口优化(接口关联)

如果一个用例的代码太多,我们可以通过封装函数或者类解决。以充值接口为例,具体方法:登录可以作为前置夹具,setUp,setUpClass;登录可以被多个测试类试用,重复试用,可以封装起来(函数 或者 类和对象);类和对象(类可以继承,对象可以访问类属性)。优化前,充值接口的自动化测试脚本详见博客:项目实战-充值接口_Ly_LittleStar的博客-CSDN博客优化后,登录接口封装成类,可以继承,base.py:import requestsfrom setting.conf

2021-11-02 16:08:55 728

原创 项目实战-充值接口

第一步:根据接口文档,得到url,headers,json数据,然后在postman中进行充值接口的测试用例数据的校验,得到返回数据作为充值接口测试用例的期望值。第二步:创建测试用例excel数据。第二步:编写自动化测试脚本。import requestsimport jsonfrom common.excel import read_excelfrom ddt import ddt, datafrom setting.config import config_file, host

2021-10-29 18:47:37 1377

原创 pymysql数据库操作

主要内容:1.接口关联(充值接口访问前,必须先登录,获取token)2.数据库操作--如何通过python操作数据库 --数据库的断言(项目使用)首先来了解数据库操作,需要先明白手工是如何操作数据库的。使用什么软件访问数据库?比如Navicat 提供数据库的账号密码,数据库名称而自动化测试操作数据库也是相同的原理,接下来看下自动化是如何操作的(安装第三方库:pip install pymysql)。数据库的操作:1.建立连接2.得到一个游标的对象(数据库的操作都是通过游标)

2021-10-29 17:33:28 323

原创 项目框架搭建

1.自动化测试流程需求分析。需求文档,接口文档。抓包接口 计划。进度?是否自动化?优先级? 测试用例(是从手工测试提取出来的) 评审 执行,(写代码) 报告接到一个项目,在需求分析的阶段,我们需要熟悉的部分包含:需求文档,功能展示以及交互 接口文档,后端数据是怎么传输 数据库账号,数据库地址,结构帮大家熟悉整个项目的轮廓,表字段 测试环境/环境怎么搭建 原型图测试计划一般由项目经理制定,主要是时间、技术、进度、优先级的管控,可以确认哪些功能需要引入自动化测试(自动化测试技术py

2021-10-22 18:09:14 2313

原创 Requests使用

requests主要的用法:发送get,post请求 定义请求头 参数url,form-data,json 响应,content,text,json 怎么处理token,session 封装通用的请求接口的函数jmeter,postman可以用来访问接口,requests也是用来访问接口,作用是相同的,都是http客户端。requests是第三方库,需要安装:pip install requests学习requests之前,先来简单了解下flask创建接口(pip install f

2021-10-17 15:44:25 1097

原创 session和token鉴权

1.什么是token?在接口的响应结果中,经常会出现类似这样的返回值:{"msg":"success","token":"eysdjsdAshdjhfjisjfoisjdiv"}往往需要在访问下一个接口时传递token数据。curl -x POST -H Authorization:eysdjsdAshdjhfjisjfoisjdiv<http:127.0.0.1:5000/user>{"alg":"HS256","typ":"JWT"}所以token

2021-10-17 13:30:48 1085

原创 Python-接口自动化测试之接口基础

1.什么是API接口?项目地址:http://api.lemonban.com/futureloan服务端—API接口—>客户端(浏览器)接口定义规则,可以在接口文档查看:访问地址 请求方法get/post 请求参数什么是接口测试?测试接口的返回数据是否和预期一致(assert)。可以使用浏览器、postman、jmeter和soupui等接口测试工具,也可以通过代码访问。2.HTTP协议接口需要使用协议才能完成,最广泛使用的协议是http协议。HTTP(超文本...

2021-10-17 11:25:42 7501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除