# CRM测试 **Repository Path**: stsiao/crm_test ## Basic Information - **Project Name**: CRM测试 - **Description**: No description available - **Primary Language**: Java - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-12-20 - **Last Updated**: 2022-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 工程文件结构 #### 测试主程序 只展示主要结构
.
├─—pom.xml 							//maven依赖
├─src  
│  ├─main
│  │  └─java						//打包成jar时,各种类相关一定在此文件夹下
│  │     ├─—testng-demo.xml
│  │     ├─—testng.xml
│  │     │  
│  │     └─cig						//测试类
│  │         ├─—AddCustomerTest.java
│  │         ├─—CreateContractTest.java
│  │         ├─—CreateProjectTest.java
│  │         ├─—PurchaseRequirementTest.java
│  │         │  
│  │         ├─testdemo				//测试demo(可删除)
│  │         │   ├─—TestDemo.java
│  │         │   └─—TestDemo2.java
│  │         │      
│  │         └─util					//测试依赖的工具类(无特殊需求不必更改)
│  │             ├─——ExtentNGIReporterListener.java	//报告监听类
│  │             ├─——ReportScreenShot.java			//出错截图类
│  │             ├─——ReportUtil.java				//报告构造类
│  │             ├─——RetryListener.java				//重试监听类
│  │             ├─——Screenshots.java				//截图实现类
│  │             ├─——StringUtil.java				//字符工具类
│  │             ├─——TestBase.java					//测试类继承
│  │             └─——TestRetry.java					//重试实现类
│  │                
│  └─test							//不打包的话,上面的文件夹结构在这里也可以
├─target							//打包生成的jar文件会在这个文件夹下
│   ├─cig-0.0.1-SNAPSHOT.jar
│   └─original-cig-0.0.1-SNAPSHOT.jar
│          
└─test-output						//测试报告输出到此文件夹下(会自动创建)
#### 邮件主程序 只展示主要结构
.
│——pom.xml				//maven依赖
│      
├─src
│  ├─main
│  │  └─java
│  │      └─mail
│  │          └─report
│  │              ├─——App.java
│  │              └─——SendMail.java
│  │                  
│  └─test
|     └─java
│                      
└─target				//打包生成的jar文件会在这个文件夹下
## eclipse部署 1. 增加TestNG。参考[博客](https://www.cnblogs.com/zoelius/p/8183091.html) *不要通过maven增加,后续操作会受阻 2. 其他依赖已经在pom中,等待自动补全即可 ## 项目部署 jar两个文件和xml文件放在同一个目录下即可 ## 调用 测试主程序:`java -jar "自动化项目打包成jar后的文件名" "测试用例xml路径"` 邮件:`java -jar "邮件项目打包成jar后的文件名" "发送地址(多个地址顺次向后排列,空格分开)"` ## 执行流程 当前,主要功能已经实现,补充剩余项目的测试用例即可。 已包括的用例: | xml/java项目中的路径 | 测试项 | 验证点 | | :--------------------: | :-----------: | :----------------------------------------------------------- | | cig.CreateProjectTest | 立项 | 1、功能权限
2、重复项目名
3、必填项
4、信息保存完整性
5、驳回后编辑权限
6、审批通过后的单据状态 | | cig.CreateContractTest | 销售合同-新建 | 1、申请合同号环节:必填项
2、完善信息环节:各页面必填
3、完善信息环节:控件功能 | | cig.AddCustomerTest | 签约客户-新增 | 1、重复用户名
2、必填项
3、审批:客户定级要求 | ## 后续扩展 无特殊变动,增加测试用例即可。若使用SeleniumIDE录制,按下述方法完成用例添加: 1. SeleniumIDE中,录制并修剪。TestCase的名称推荐使用crm功能对应的网页路径名。一些推荐删除的命令: 1. set window size 2. 文本框控件的type指令 3. 滚动屏幕出现的js指令 4. 其他错误点击的无用指令 2. 导出,语言选择`Java JUnit`,存放到对应位置(可参考现有文件存放方式) 3. eclipse中刷新,应该可以看到新增的.java文件了。双击打开,按下Ctrl+1,弹出菜单选`Convert to TestNG`,更新类为TestNG类 4. 手工修改class,使其继承TestBase(public class "类名" extends TestBase) 5. 现在文件有错误,直接按照给出的方案自动修改。方法如下 1. 寻找错误图标(红色的×盖在灯泡上,在行号左侧) - 点击它 - 弹出菜单选第一项 2. 重复1,直到所有错误图标消失 6. 因为有继承,所以现在删除重复的变量 1. private WebDriver driver; 2. private Map vars; 3. JavascriptExecutor js; 4. public void setup(){}及其上方的@BeforeMethod声明 5. public void tearDown(){}及其上方的@AfterMethod声明 6. 如有 waitForWindow 方法、acceptAlert 方法,可删除 7. (可选)清除Warning 8. 修改Test代码 1. 修改登录操作:相关步骤替换为方法 login() 2. 修改上传操作:相关步骤替换为方法 upload() 3. 修改日历板操作:相关步骤替换为方法 calander() 4. 修改月份选择操作:相关步骤替换为方法 calander_M() 5. 涉及到浏览器弹窗 alert 的操作,增加alert处理方法 acceptAlert() 6. 涉及到浏览器弹窗的页面(如点击 新增项目 后,弹出的layer),在浏览器进入到本页开始操作前,增加语句`js.executeScript("jQuery.fx.off=true");` 7. 部分控件会莫名其妙的找不到,此时可手工增加等待步骤。使用方法 wait(等待毫秒数),或 pause() 等待10s **步骤6,有些信息会因为使用了jQuery.fx.off=true而发生异常。此时应让jQuery.fx.off=false,然后通过步骤7手动增加等待时间** 9. 修改到正常后,打包项目成jar 10. 在配置文件xml中,仿照之前增加一个test标签,保存