测试知识点

*
    1. 如何在gitlab中进行拉取代码  如何上传

1、首先需要使用github的注册账号登录gitlab,查看右上角用户头像处的settings,

2、在用户设置settings处找到SSH Keys,

3、如果你的电脑中没有SSH Key,那就需要生成一个,

按照相关提示生成SSH Key,使用git工具,右键打开git bash here,在命令行中输入ssh-keygen -t rsa -C "your_email@example.com",此处邮箱地址是你github注册邮箱地址哦。然后一路回车就好了。接下来就按照有SSH Key的步骤来操作了。

 

如果电脑中没有SSH Key,那就找到相关文件夹中的文件,

一般是在这里,总之是在.ssh文件夹下的id_rsa.pub文件中,

把id_rsa.pub里的内容复制粘贴到gitlab中的key当中,


最后点击Add Key按钮,就会生成SSH Key了。

 

4、现在我们就可以在git 工具下用git clone来克隆你想要操作的文件了,git clone 文件路径,

5、git pull就可以把你的代码拉下来了,现在你可以增删改查你的代码了。

6、代码修改完成了,你想把你的代码重新放到gitlab上去,执行命令 git add .,此处需要注意,add后面是“空格”和“.”,

7、添加完了需要提交 ,执行命令git commit -m '备注信息(提交的什么内容)',

8、此刻你可以将你的代码推送到远程仓库了,执行命令 git push,这样你的代码基本上就被重新放到了gitlab上了。


**

**
      2.Charles抓包    针对是http请求或者是https请求如何抓包  

 HTTP抓包
(1)查看电脑IP地址
windows:win+R-->cmd-->ipconfig
(2)设置手机HTTP代理
手机连上电脑,点击“设置->无线局域网->连接的WiFi”,设置HTTP代理:
服务器为电脑IP地址:如192.168.1.169
端口:8888(一般我设置为4个8)
设置代理后,需要在电脑上打开Charles才能上网
(3)电脑上打开Charles进行HTTP抓包
手机上打开某个App或者浏览器什么的,如果不能上网,检查前面步骤是否正确
点击“Allow”允许,出现手机的HTTP请求列表

HTTPS抓包
HTTPS的抓包需要在HTTP抓包基础上再进行设置
以下为在HTTP抓包基础上进行HTTPS抓包的进一步设置步骤:
  (1)安装SSL证书到手机设备
           点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device
           出现弹窗得到地址 chls.pro/ssl 或者 charlesproxy.com/getssl 手机安装SSL证书的地址
           在手机浏览器输入地址 chls.pro/ssl 或者 charlesproxy.com/getssl ,出现证书安装页面,点击安装(根据不同机型进行相应的安装)
   注意1:Safari浏览器输入这个网址chls.pro/ssl安装不了证书的情况,
  设置好手机HTTP代理 电脑上Charles要开着
  注意2:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书
(2)Charles设置Proxy
Proxy -> SSL Proxying Settings...
勾选Enable SSL Proxying,点击Add
Host设置要抓取的https接口,比如想抓这个
Host填写:https://api.weibo.cn
Port填写:443
(3)进行HTTPS抓包
让手机重新发送https请求,可看到抓包
注意:
1、不抓包请关闭手机HTTP代理,否则断开与电脑连接后会连不上网
2、如果电脑浏览器上不去网,检查一下浏览器的网络设置是否设置了代理


      替换数据                    

1.本地替换(实现步骤)                 

2.断点替换(实现步骤)
                       1.打开将要访问的网址,通过charles抓到想要修改数据接口
                       2.点击右键勾选BreaKpoints
                       3.点击charles工具proxy_Breakponts
                       4.弹出Breakpoints settings弹层
                       5.双击Location中的想要打断点的接口,弹出Edit Breakponts
                       6.将Quer中的内容删除 输入*
                             如果修改Request数据,就将Request勾选
                              如果修改Response数据,就将Response勾选
                      7.重新访问该接口,charles自动跳转到breakponts页面
                      8. 修改Response数据,点击Edit Response 切换底部tab至text 修改所需要的数据
                      9.修改数据后,点击Execute,查看访问的页面,数据将会显示已修改的Response数据

**

**
    3.测试用例的编写(测试方法/测试策略  )
     在项目中如何对功能的测试用例编写
     任意的测试用例都是通过  (功能 性能  兼容  安全  网络)
**

**
      4.Mysql的语法   
      多表联查  子查询   聚合查询  排序查询

多表联查 
内链接:只查询左右2张表中相同的记录 inner join

语法:select 列1, 列2, 列3, ...
from 表1
inner join 表2 on 表1.列x = 表2.列y

示例:select studentname, age, phone, classname
from student
inner join classinfo on student.classid = classinfo.classid


左外链接:查询左右2张表中相同的记录 + 左表未匹配的记录(右表字段为NULL) left outer join

语法:select 列1, 列2, 列3, ...
from 表1
left join 表2 on 表1.列x = 表2.列y

右外链接:查询左右2张表中相同的记录 + 右表未匹配的记录(左表字段为NULL) right outer join

语法:select 列1, 列2, 列3, ...
from 表1
right join 表2 on 表1.列x = 表2.列y

完全链接:对左右2张表中的记录做笛卡尔积 cross join

语法:select 列1, 列2, 列3, ...
from 表1
cross join 表2

子查询

定义:在查询语句中,又嵌套了另外一个查询语句。

聚合函数

1.count() : 获取记录的行数

2.sum() : 对指定字段进行求和

3.avg() : 对指定字段进行求平均值

4.max() : 对指定字段求最大值

5.min() : 对指定字段求最小值

排序

语法:select 字段1, 字段2, ... from 表名 where 条件 order by 字段 [asc|desc]

asc :升序

desc :降序

默认是升序asc

SELECT * FROM student ORDER BY age ASC, studentid ASC;

**

**
        5.jmeter  性能测试    

针对http请求       

     步骤:

在测试计划中 添加线程组
在线程组中 添加http请求
在http请求中进行添加元素


     4.添加响应断言

     5.添加查看结果树

     6.添加聚合报告

        请求方式的种类有:

针对https请求:

   步骤:

1. 在使用https协议的时候需要下载并安装证书下载需要在网址的url地址栏中点击锁

2. 一路下一步直至导出证书.cer文件

3. 将.cer文件编译成.store 需要使用jdk目录下的bin文件下的keytool.exe文件

在黑白窗口中使用命令

Keytool -import -alias "jiuyue.store" -file "C:/Users/Administrator/Desktop/a.cer" -keystore "C:/Users/Administrator/Desktop/jiuyue.store"

4.在jmeter中添加线程组

5.添加http请求

6.添加断言 因为是向服务器发出请求 得到的测试模式为抓包 得到的json

7.添加结果树  如果需要进行压力测试  50个线程在30s内同时发布10个请求

8.在聚合报告中可以查到结果( 聚合报告 能够看到的数据有哪些。)

或者在图形结果

 

       jmeter 脚本录制(步骤)

 脚本录制方式有2种

使用第三方的boadboy的软件
           在url地址栏中输入一系列的业务需求 打开不同的页面以及参数

           点击红点 停止录制

           在file菜单中选择 export jmeter 会生成.jmx文件

           打开jmeter中选择文件中的打开

           会自动生成一个线程组 在线程组中的步骤是具体的每一个接口

           任何一个http请求 都会自动生成 路径。方式。。。。。

           在结合响应断言 查看结果树。。

           有可以对其使用弱网测试 压力测试 性能测试

          使用badyboy录制的大多数都是web项目或者是后台开发

     2. 使用jmeter的代理录制

         使用android的项目可以使用jmeter的代理

         需要在jmeter工具和手机端都要安装证书(jmeter的证书)

        * Pc端和手机处以同一网络下(手机设置手动代理)

          在添加线程组-->httpcookie管理器

          在工作台上添加http代理服务器

          在代理服务器上添加端口号 以及目标控制器 分组

         点击 启动按钮后会弹出对话框  安装证书  

         在选项中选择ssl管理器 给jmeter导入证书

 

  在移动端进行安装证书  将后缀名为crt的文件拖入到手机中或者是在文档根目录  

拖拽到移动端然后自动安装
在跟目录下使用证书安装程序的方式进行安装
在设置中-->安全-->从sd卡中安装证书
 


        录制web端
        录制移动端
      

        Jmeter 压力测试(在线程组中进行添加 线程个数)

1.创建线程组

在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。

设置线程数和循环次数。我这里设置线程数为500,循环一次。

2.配置元件

在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】

配置我们需要进行测试的程序协议、地址和端口

所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。

3.构造HTTP请求

在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json

4.添加HTTP请求头

在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。

因为我要传输的数据为json,所以设置一个 Content-Type:application/json

5.添加断言

在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。

根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息


        Jmeter的参数化关联

方式1  用户参数之间关联

添加用户参数
添加变量名以及变量值 可以添加多个用户


     3.在http请求中引用

方式2

   1 添加配置原件 -->csv datesetconfig

   2 在源文件中只写变量值不需要变量名、 单行为多个变量值用,

3.在http请求页面 需要引用以${变量名}的方式

方式3 连接数据库

 使用猫抓导出向导-->选择导出类型为 .csv文件-->选择导出的表-->选择导出的字段-->点开始
 沿用方式2来实现
方式4 函数助手

       可以理解为固定手机前三位 后面的8为数字随机 密码固定

        可以使用多线程的方式来验证 注册是否成功  

          Jmeter 弱网测试

一、业务需要,有时限制网速会更加符合实际,测试出真实的响应时间情况
        找到apache-jmeter-3.2/bin/jmeter.properties文件
        找到参数,分别为限制http即https
        #httpclient.socket.http.cps=0#httpclient.socket.https.cps=0
        计算逻辑:cps = (target bandwidth in kbps * 1024) / 8,
        所以cps=B/s的速率

二、对于网络带宽的换算
1、网络速率
100Mbps=100Mbit/s即兆比特每秒
100MB/s=100MBytes/s即兆字节每秒
1B=8bit
100Mbps=12.5MB/s,理论上平常的百兆带宽下载速率可以达到12.5MB/s
100MB/s=100*1024KB/s=100*1024*1024B/s
2、数据存储
对于数据硬盘之类的存储换算比较不同
数据存储是以10进制表示,1MiB=1000KB

三、jmeter分别配置不同的cps测试响应时间的变化

默认情况下该接口,内网测试如下

响应时间很小,设置cps=40KB/s=40*1024B/s=40960,查看网络延迟情况

可以看到平均网络延迟了1分多钟

**

**
    6.禅道的使用   jira的使用
**

**
    7. 测试流程

将所有的经理根据客户需求来编写需求文档
开发根据需求文档来编写代码 测试需要根据需求文档 编写测试计划
开发人员实现代码测试人员编写测试用例
编码结束之后由开发人员将代码上传 测试人员需要将代码下载并实现冒烟测试 冒烟测试通过后在实现全面测试(如果发现bug 需要将bug提交给开发人员 开发解决问题之后测试人员需要进行回归测试)
 测试人员需要将测试报告以及测试用例整理文档方便项目版本迭代的使用
**

**    
    8. 开发流程

.开发流程:需求分析,概要设计,详细设计,编码,测试,软件交付,用户验收,维护

**

**
    9.Adb moneky linux命令  至少10条

adb命令:
 1.清除指定应用缓存: adb shell pm clear 包名
 2.获取设备列表:  adb devices
 3.终止adb进程: adb kill-server
 4.获取当前手机所有的包名: adb shell pm list packages
 5.获取应用路径: adb shell pm path 包名
 6.列出目录内容: adb shell ls
 7.展示所有文件:ls
 8.切换目录:cd 文件名字
 9.打印日志文件: adb logcat
 10.查看adb命令帮助信息:adb help
 11.获取管理员权限:adb root

  monkey命令:
 1.查看设备的链接情况:adb devices
 2.手机里面的软件随机点击:adb shell monkey 1000
 3.启动一个包名():adb shell monkey -p com.tencent.mobileqq 1000
 4.指定多个包名:om.tencent.mm
 adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000
 5.操作日志:adb shell monkey -p com.tencent.mobileqq -v -v 100
 6.--help:打印帮助信息
 7.-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。
 8.--ignore-crashes:忽略崩溃
 9.--ignore-timeouts:忽略超时
 10.--ignore-security-exceptions:忽略安全异常
 11.--kill-process-after-error:发生错误后直接杀掉进程
 12.--monitor-native-crashes:跟踪本地方法的崩溃问题
 13.--wait-dbg:知道连接了调试器才执行monkey测试。

  linux命令:
 1.cd /        切换到根目录
 2.cd /usr        切换到根目录下的usr目录
 3.cd ../        切换到上一级目录 或者  cd ..
 4.cd ~        切换到home目录
 5.cd -        切换到上次访问的目录
 6.ls                查看当前目录下的所有目录和文件
 7.ls -a            查看当前目录下的所有目录和文件(包括隐藏的文件)
 8.ls -l 或 ll       列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
 9.ls /dir            查看指定目录下的所有目录和文件   如:ls /usr
 10.mkdir    aaa            在当前目录下创建一个名为aaa的目录
 11.mkdir    /usr/aaa    在指定目录下创建一个名为aaa的目录
 12.rm -r aaa    递归删除当前目录下的aaa目录
 13.rm -rf aaa    递归删除当前目录下的aaa目录(不询问)
 14.rm 文件        删除当前目录下的文件
 15.rm -f 文件    删除当前目录的的文件(不询问)


**

**
    10. arraylist 和 linkedlist的区别  冒泡排序  单例模式(手写)

arraylist 和 linkedlist的区别 

不同点:

  1、ArrayList是基于数组实现的;LinkedList是基于链表实现的;

  2、ArrayList随机查询速度快;LinkedList插入和删除速度快;

原理解析:

  ArrayList是基于数组实现的,他的特性就是可以使用索引来提升查询效率;插入和删除数组中某个元素,会导致其后面的元素需要重新调整索引,产生一定的性能消耗;

  LinkedList是基于链表实现的,没有索引,所以查询效率不高,但是插入和删除效率却很高;为什么呢?因为链表里插入或删除某个元素,只需要调整前后元素的引用即可;

冒泡

单例模式

**

**
    11.Python  selenium的结合   在selenium的原宿定位方式  显示等待 隐式等待 强制的区别  测试报告

selenium的原宿定位方式

通过id执行翻页


通过name进行登录

3.通过class_name执行翻页

4.通过tag_name来执行

5.通过link_text执行标签检索并进入
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191104205342636.png)
6.通过partial_link_text执行标签检索并进入(模糊查询)

7.通过xpath地址进入详情(使用inspect in FirePath进行来选择元素并选择xPath路径地址并复制,粘贴到代码的xPath路径中)

8.通过css_selector选择器定位,查看元素,选择元素,点击列表中的item的标题,将选中的右键选择唯一选择器进行复制
9.通过使用find_elements_by_css_selector查找当前列表所有的标题以及连接地址,查看元素,选择元素,点击列表中的item的标题,将选中的右键选择唯一选择器进行复制,将div.item后的:以及nth - child(2)删除,列出当前列表所有的   


 

显示等待 隐式等待 强制的区别

强制等待
time.sleep()
设置固定的线程休眠时间。

显示等待
WebDriverWait()
比如:
driver = webdriver.Chrome()
driver.get(‘http://www.baidu.com’)
element = WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located(By.ID,‘kw’))
element.sendkeys(‘selenium’)
说明:显示等待是单独针对某个元素,设置一个等待时间如5秒,每隔0.5秒检查一次是否出现,如果在5秒之前任何时候出现,则继续向下,超过5秒尚未出现则抛异常。

隐式等待
implicitly_wait()
比如:
driver.implicitly_wait(10)
说明:隐式等待是全局的是针对所有元素,设置等待时间如10秒,如果10秒内出现,则继续向下,否则抛异常。可以理解为在10秒以内,不停刷新看元素是否加载出来。
 

**

**
    12.Python  appnium的结合使用
**

**
    13.白盒  jemter+jinkes+ant (接口自动化)

1.jmeter的安装以及环境变量的设置
       在dos命令中执行jmeter
       Jmeter_home
        
         环境变量Path
        
2.jmeter 默认生成的测试报告的后缀为.jtl格式 修改成mxl
        在jmeter文件下bin\jmeter.properties中将
        jmeter.save.saveservice.output_format=csv修改为xml并解开注释
3.将apacheAnt.rar 实现解压
4.实现将ant和jmeter实现关联
        通过在jmeter文件夹下extras/ant-jmeter-1.1.1.jar取覆盖到ant下
         lib文件夹
5.配置框架结构
        自定义文件夹 JTest
        将能和jmeter关联的ant文件复制到
        F:\JTest\apacheAnt(替换过jar包的ant)
        F:\JTest\JmeterAutoTest\pc\resultlog\jtl  (jmeter自动生成的测试报告但是看不懂)
        F:\JTest\JmeterAutoTest\pc\resultlog\html   (使用ant将jtl的测试报告转换html)
        F:\JTest\JmeterAutoTest\pc\script (用来存放脚本 .jmx文件)
6.配置ant的环境变量
         Ant_home   F:\JTest\apacheAnt
        Path       F:\JTest\apacheAnt\bin
        在dos命令行输入 ant -version 来验证ant配置成功
7.将测试报告发送到邮箱
        activation-1.1.jar
        commons-email-1.1.jar
        mail-1.4.jar
        复制到ant下的lib文件夹下实现替换
8.Ant的执行时通过buid.xml来执行
        将buid.xml 存放到
        F:\Test\JmeterAutoTest\pc\build.xml(因为要执行的时pc的测试报告)
        更改buid.xml文件的7个地方
9.将.jmx文件放入到script文件夹下
10.在buid.xml文件存放的的目录下 使用dos命令 ant即可生成测试报告并发送


**实现jenkins构建定时机型自动执行脚本后者是批量执行脚本**

1. 配置tomcat
        在启动tomcat的出现闪退的现象
        1.java的环境变量
        2.Tomcat的端口号被账号  8080
2. 将jenkins.war文件放入到tomcat的webapps文件夹下
      类似于 将一个项目以war包的方式放入到tomcat环境下
      D:\apache-tomcat-8.0.44\webapps  (目录下放入war包)
      打开浏览器 输入
      http://127.0.0.1:8080/jenkins
3. 在jenkins中进行新建任务
        在item中自定义项目名称
        在选择自由风格的软件项目
        点击ok
        在构建触发器中进行选择 定时的构建
        Build periodically    
        在构建中
        点击保存
在返回控制面板中进行立即构建
--------------------------------
在构建jenkins中的触发器中的日期
规则:
    * * * * *(五颗星 中间以空格的方式)
  第一颗 * 表示分钟  取值范围 0-59
  第二颗 * 表示时    取值范围 0-23
  第三颗 * 表示天    取值范围 1-31
  第四颗 * 表示月     取值范围 1-12
  第五  * 一周中的第几天  取值范围 0-7 (0 7 代表的时周日)
   

每30分钟构建一次  
 H/30 * * * *
每2个小时构建一次
H H/2 * * *
每天早上 8点  12点 22点多个时间点进行构建
* 08,12,22 * * *
----------------------------------

 

**

**
    14.Loaderrunner 行测测试(性能指标 cpu  内存  网络 响应时间 吞吐量)
**
————————————————
版权声明:本文为CSDN博主「连连--」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43503738/article/details/102960800

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值