测试

selenium 过程如下:

运行用python写好的selenium脚本,它会像web service中发送一个http请求

浏览器驱动中的web service 会根据这个请求生成对应的js脚本,因为不同的浏览器,相同的操作生成的js脚本会有所不同,因此不同的浏览器要有不同的驱动

js脚本驱动浏览器,产生各种操作,并返回给web service

web service将结果通过http响应的形式返回给客户端

appium的加载过程

调用Android adb完成基本的系统操作

向Android上部署bootstrap.jar

bootstrap.jar Forward Android的4723端口到PC机器上

PC上监听端口接收请求,使用webdriver协议

分析命令并通过forward 端口发给bootstrap.jar

bootstrap.jar接收请求并把命令发给uiautomator

uiautomator执行命令

selenium的定位方式

ID定位:driver.find_element_by_id("kw")

name定位:driver.find_element_by_name("wd")

class name定位:driver.find_element_by_class_name("s_ipt")

tage name定位:元素的标签名,比如input标签  driver.find_element_by_tag_name()

link_text和partial_link_text:link_text和partial_link_text是作用于链接a标签的,link_text用于全部匹配文本值,partial_link_text用于部分匹配文本值。

css定位:通过组合的方式进行定位 driver.find_element_by_css_selector(css表达式)

xpath定位:find_element_by_xpath(xpath表达式)

             绝对定位 (/):严格按照路径、同级元素的位置来定位

              相对定位(//):有一个参照物   不考虑路径和位置,只考虑:有还是没有!!  以//开头  //标签名[@属性名称=值]

UI 自动化测试中,如何做集群?

Selenium Grid,分布式执行用例

Appium 使用 STF 管理多设备

Docker+K8S 管理集群

测试理论:

隐藏得比较深的bug、影响比较大的bug、处理过程比较曲折的bug。根据自己的经验描述:如何发现的、如何处理、影响、结果、反思。

举例说明:如升级版本兼容性问题、接口安全性问题、数据库安全性问题、服务器资源占用溢出问题、代码逻辑问题等

app兼容性:

系统兼容(ios、安卓)、机型兼容(iPhone、华为、小米、三星、vivo、OPPO)、分辨率兼容、软件本身向前向后兼容

web端测试和app端测试差异:

系统结构方面

Web 项目,b/s架构,基于浏览器的;Web 测试只要更新了服务器端,客户端就会同步会更新;

App 项目,c/s结构的,必须要有客户端;App 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍;

兼容方面

Web项目:a. 浏览器(火狐、谷歌、IE等)b. 操作系统(Windows7、Windows10、Linux等)

App项目:a. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)b. 手机设备可根据 手机型号、分辨率不同

性能方面

web项目 需监测 响应时间、CPU、Memory

app项目 除了监测 响应时间、CPU、Memory外,还需监测流量、电量等

相对于 Web 项目,APP有专项测试

干扰测试:中断,来电,短信,关机,重启等

弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

安装、更新、卸载

安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况

卸载:需考虑 卸载后是否删除 App 相关的文件

更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新

界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换

安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等

边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等

权限测试:设置某个 App 是否可以获取该权限,例如是否可访问通讯录、相册、照相机等

测试用例:

登录界面:

功能测试:正确输入、为空输入、字符类型校验、长度校验、密码是否加密显示、大写提示、跳转页面是否成功、登出后用另一个账号登录

UI:界面布局合理、风格统一、界面文字简洁好理解、没有错别字

性能测试:打开登录页面需要几秒、点击登录跳转首页需要几秒、多次点击、多人点击

安全性:用户名和密码是否加密发送给服务器、错误登录的次数限制(防止暴力破解)、一台机器登录多个用户、一个用户多方登录、检查元素能否看到密码

兼容性测试:不同浏览器、不同的平台(Windows、Mac)、移动设备能否工作

易用性:输入框可否tab键切换、回车能否登录等

性能测试指标包括哪些

最大并发用户数,HPS(点击率)、事务响应时间、每秒事务数、每秒点击量、吞吐量、CPU使用率、物理内存使用、网络流量使用等。

前端需主要关注的点是:

响应时间:用户从客户端发出请求,并得到响应,以及展示出来的整个过程的时间。

加载速度:通俗的理解为页面内容显示的快慢。

流量:所消耗的网络流量。

后端需主要关注的是:

响应时间:接口从请求到响应、返回的时间。

并发用户数:同一时间点请求服务器的用户数,支持的最大并发数。

内存占用:也就是内存开销。

吞吐量(TPS):Transaction Per Second, 每秒事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间。

错误率:失败的事务数/事务总数。

资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O。

从性能测试分析度量的度角来看,主要可以从如下几个大的维度来收集考察性能指标:

系统性能指标、资源性能指标、稳定性指标

如果一个需求没有明确的性能指标,要如何开始进行性能测试?

先输出业务数据,如pv、pu、时间段等,计算出大概的值,然后不断加压测到峰值

介绍JMeter聚合报告包括哪些内容

请求名、线程数、响应时间(50 95 99 最小 最大)错误率、吞吐量

如果有一个页面特别卡顿,设想一下可能的原因

后台:接口返回数据慢,查询性能等各种问题

前端:使用chrome工具调试,判断js执行久或是其他问题

网络问题

说一说项目中的实际测试内容

根据自己项目中的经验实话实说,有没有经验很容易露馅

介绍一下JMeter进行性能测试的过程

www.baidu.com 55

介绍一下JMeter和LoadRunner的区别

www.baidu.com 55

你可能感兴趣的:(测试)