web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建UI自动化的框架 第一步,搭建框架,从配置文件信息开始,然后读取配置文件,然后是读取驱动. 第二步,对selenium中的一些方法做二次封装 第三步,封装页面的元素对象和元素的新增,删除,查询,修改等操作 第四步,测试用例层,设计测试用例 selenium读取配置文件的方法封装 有了配置config.…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 访问:https://m.weibo.cn/ 点击:大家都在搜 点击:微博热搜榜…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 访问:https://www.toutiao.com/ 获取到下图所有黑框里的内容…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 1.访问:http://www.51job.com 2.输入搜索关键词 "pyth…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 打开 12306 网站 https://kyfw.12306.cn/otn/lef…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 访问: https://www.vmall.com/ 获取一级菜单下包含哪些二级菜…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 登录 http://www.51job.com 点击高级搜索 输入搜索关键词 py…
介绍 当您使用一个Struts 2标签时,例如 <s:select ..../>  在您的web页面中,Struts 2框架会生成HTML,它会显示外观并控制select控件的布局.样式和布局取决于为标签们设置的Struts 2主题.Struts 2有三个内置的主题:简单.xhtml和cssxhtml.如果您没有指定主题,那么Struts 2将默认使用xhtml主题. 本帖地址 struts2官方 中文教程 系列十四:主题Theme 即 http://www.cnblogs.com/lingh…
Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python 下载Chrome Driver 点击下载chromedriver 将驱动放入Python根目录下 安装PyCharm 转载:安装教程 安装Selenium 打开PyCharm 新建Python File 点击面板底部 Terminal 输入pip install selenium 安装.pip li…
前言 SeleniumLibrary 是针对 Robot Framework 开发的 Selenium 库.它也 Robot Framework 下面最流程的库之一.主要用于编写 Web UI 自动化测试.今天我们一起来学习SeleniumLibrary的用法. 安装 pip install --pre --upgrade robotframework-seleniumlibrary 简单使用示例 创建 robot_se.robot 文件.调用 SeleniumLibrary 中所提供的关键字,…
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面 学习ASP.NET C…
MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了. MyBatis Plus的资料不算是太多,与MyBatis相比.所以将可能用到的记录下来.分页及其搜索对于web开发是非常常用的. 使用MyBatis Plus已经有5个多月,开发的效率,的确提高不少.虽然前面有MyBatis的逆向工程,可以生成单表的增删改查,但是呢?看起来繁杂,用起来不爽,因为还得看一大堆sql和一些queryvo,…
由于业务随着时间不停的改变,起初的表结构设计已经满足不了如今的需求,这时你是不是想那就加字段呗!加字段也是个艺术活,接下来由本文的主人咔咔给你吹. 试想一下这个场景 事务A在执行一个非常大的查询 事务B毫不犹豫的执行了DDL操作 接下来会发生什么,你如果已经知道答案的话恭喜你又掌握了一个MySQL中重要的知识点. 事务A执行查询时会持有MDL锁,而事务B同样也需要MDL锁,但事务A在进行大查询,所以导致事务B后的所有操作都会被堵塞. 这时你应该知道了在MySQL中所有对表的增删改查都需要申请MD…
实战项目 均来源于互联网 测试报告2017年11月29日优化后的测试报告:https://github.com/defnngj/HTMLTestRunner 1.项目概述: 本实战已126邮箱为例子进行了实战,对登录.写邮件.发送邮件.删除邮件.退出登录进行了自动化测试: 测试完成后自动发送测试报告到指定邮箱 目录结构: auto_working目录: report                         ---> 目录用于存放测试报告 test_case                …
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺点.当然,它也不是直接就可以调用,需要我们对c代码进行一些中间过程处理,其基本流程如下: 1.创建c程序功能代码------------1.1创建.c源程序文件(py_test1.c) ------------1.2创建.h头文件(py_test1.h)2.python类型适配,包装c代码(写包裹文…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 引入HTML页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF…
之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要用到的数据,前端做到数据驱动.2. 测试服务.测试服务类主要提供一组API,达到重用的目的.3. 页面封装.对具体的Web页面进行抽象和封装,提供统一的接口,降低逻辑的编写门槛,组件重用以及更好的可维护和可读性. 4. Selenium Web Driver.底层用的WebDriver.…
最近写了一个查单词的类似有道词典的软件,里面就有一个自动补全功能(即当你输入一个字母时,就会出现几个候选项).这个自动补全功能十分常见,百度搜索关键词时就会出现.不过它们这些补全功能都是与你输入的进行首字匹配,有时也会不方便.例如,如果我输入一个"好",如果是首字匹配的话会出现下图: 如果是句中匹配的话,则是这种情况: 你可以根据自己的要求进行选择哪一种模式.     Qt中自带QCompleter类来实现上面的自动补全功能,读者可以在Qt自带的demo中很容易的学会该类的使用.下面我…
一.简介 站点搭建完成后,编写页面时一般会有如下几个需求 1.嵌套静态页面时有很大一部分通用代码,如css.js这部分可以使用thymeleaf的局部片段代码块组成 2.这些静态资源默认放在程序中,但后期可能会为了节省服务器系统资源做动静分离,或架在CDN上,所以需要有独立的静态资源站点设计,目前我是单独搭建了nginx做静态资源站 3.编写Controller时有一部分的公用代码可以提出BaseController基类来提供,简化子类代码,统一代码规范 根据这几个需求,设计如下解决方案 二.代…
目录 一.环境说明和准备 1.环境说明 2.服务器准备工作 二.发布脚本编写 1.自动化部署流程设计 2.自动化部署脚本编写 三.发布测试 1.开发机和github添加ssh信任 2.克隆项目到开发机进行开发测试 3.修改index.html文件 4.提交代码 5.发布代码 6.测试访问 7.回滚测试 一.环境说明和准备 1.环境说明 主机名 IP地址 角色 系统 deploy-server 192.168.56.12 发布 Centos 7.4 web 192.168.56.13 web服务器…
1. 回顾 前面已用Eureka实现了微服务的注册与发现,Ribbon实现了客户端侧的负载均衡,Feign实现了声明式的API调用. 2. 实现容错的手段 如果服务提供者响应非常慢,那么消费者对提供者的请求就会被强制等待,知道提供者响应或超时. 在高负载场景下,如果不做任何处理,此类问题可能会导致服务消费者的资源耗竭甚至整个系统的崩溃. 例如,曾经发生过一个案例——某电子商务网站在一个黑色星期五发生过载.过度的并发请求,导致用户支付的请求延迟很久 都没有响应,在等待很长时间后最终失败.支付失败又…
对于 web 应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性. 但对于测试人员来说,不管是进行性能测试还是自动化测试都是一个比较棘手的问题.在 WebDriver中并没有提供相应的方法来处理验证码. 如下图的验证码: 一般来说有以下几种解决方案: 去掉验证码 这是最简单的方法,对于开发人员来说,只是把验证码的相关代码…
本篇文章整理了元素定位的基础知识——iframe框架中的元素定位. 一.iframe框架元素定位 iframe是Html页面的内联框架,如果在自动化测试中无法定位到某个元素,那么很有可能是因为该元素在iframe框架中.先来看一下下面3段代码,分别是origin.html和2个iframe框架页面. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g…
本篇文章整理了元素定位的基础知识——多个元素定位方式. 一.多个元素定位方式简介 同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id.name.class_name.tag_name.link_text.partial_link_text.xpath和css_selector.不同的是方法名中element需要写成复数形式.多个元素定位得到的结果通常是一个列表类型,可以通过索引方式访问具体元素. 二.实例 以百度首页为例,通过find_elements_by_tag_name…
本篇文章整理了元素定位的基础知识——单个元素定位方式. 一.单个元素定位方式简介 1. find_element_by_id 通过元素的id属性进行定位.以百度首页为例,首先进入https://www.baidu.com,按F12进入开发人员页面,然后单击调试窗口的左上角的选择图标,然后选中百度搜索框,即可看到调试窗口对应所选元素的代码突出显示,如下图,可以看到百度搜索框的id为kw. 2. find_element_by_name 通过元素的name属性进行定位.如上图,百度搜索框的name为…
1. PersistentVolume(PV)简介 1.1 为什么需要Persistent Volume(PV) 1.2 PersistentVolume(PV)和Volume的区别 1.3 PV和PVC更具体的概念和关系 1.3.1 PersistentVolume(PV) 1.3.2 PersistentVolumeClaim(PVC) 1.3.3 PV和PVC的关系和图解 2. PersistentVolume(PV)的分类 2.1 静态PV 2.2 动态PV 3. PersistentV…
前言:其实这篇写的是pytest的测试框架运用,实现自动化和https://www.cnblogs.com/Jack-cx/p/9357658.html 原理一致 1.为啥不用unittest Pytest相对Unittest更加灵活一点,unittest需要写类继承unittest.TestCase类,pytest不需要可写可不写类,也支持生成html测试报告 2.创建工程 &对比上面robot的工程,增加一个PyUnit目录和report,这里主要放单元测试框架其他实现思路一致,report…
六.依赖属性回调.验证及强制值 我们通过下面的这幅图,简单介绍一下WPF属性系统对依赖属性操作的基本步骤: 借用一个常见的图例,介绍一下WPF属性系统对依赖属性操作的基本步骤: 第一步,确定Base Value,对同一个属性的赋值可能发生在很多地方.比如控件的背景(Background),可能在Style或者控件的构造函数中都对它进行了赋值,这个Base Value就要确定这些值中优先级最高的值,把它作为Base Value. 第二步,估值.如果依赖属性值是计算表达式(Expression),比…
最近在做一个BizTalk项目,对XML文件的处理很复杂.本来是想找有没有方法可以一次性去除XML文件中节点和属性的值的空格.但是找了很久没有看到相关的方法.如果有知道该方法的麻烦跟我讲一下:cbcye@live.com 不过下面我整理了一下与之相关的XML空白字符(WhiteSpace). 先来看看这个问题比较一下这两个XML是否一样? XML(一) <AddBook>   <Name/>   <Mobile/> </AddBook>  XML(二) &l…
序 在构建自动化套件的过程中,日期操作是一件很重要也很频繁的事情.有的日期控件的div层级结构复杂,同一个类型的日期控件在多个子系统中的表现形式也大相径庭.多数工程师为了避免重复的工作,会封装抽象一个方法或公共的库,还有部分会封装成单独的日期类库. 控件 下面是去啊的日期控件 下面是相关的HTML 当然,有的日期控件元素的id为对应的日期. 代码逻辑 针对这种双日期的格式,我们如何在代码中进行处理输入? 1.      输入目标日期. 2.      判断目标日期与当前日期的差值 -      …